windows - Gem fil I en anden mappe i vim

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg arbejder med flere filer i gvim i Windows 7. Jeg skal teste filerne (Python scripts) i Linux. Bortset fra deres oprindelige placering vil jeg også gemme filerne i en mappe kaldet linux. Jeg vil gerne gøre det med nye filer, som jeg vil oprette/ændre. Det er derfor, jeg vil bruge en kortlægning med \% tegnet for at få navnet på den aktuelle fil i den nye vej.
Det problem, jeg har, er at tegnet \% er undslapet med et tilbageslag, så det virker ikke:


:w C:projectslinux\%:t


At være den oprindelige placering:


C:projectsfoo


Er der en nem måde at bare gemme den aktuelle fil i en anden mappe på? (Jeg har læst, at tegnet \% er et filnavn, så jeg kunne slette det fra strengen isfname og det skulle fungere, men jeg tror, ​​jeg gør det mere kompliceret end det egentlig er.

Bedste reference


Du kan muligvis gøre denne slags ting temmelig automatisk ved hjælp af funktionen autocmd.


Følgende (untested) linje i din platforms ækvivalent på ~/.vimrc opdaterer en kopi af en fil, når gvim foretager ændringer:


" clear commands
autocmd!
" when writing buffers, save a copy -- see :help filename-modifiers
autocmd BufWritePost c:/path/to/source/directory w \%:t


:t vil bare tage halen af ​​stienavnet; hvis du arbejder med multi-level-mapper, vil måske :p:. være bedre. Se dokumentationen for flere detaljer.

Andre referencer 1


Min erindring er, at du kan undslippe backslashet ved at fordoble det (men jeg er ikke i Windows i øjeblikket, så jeg kan ikke bekræfte det med det samme). Du behøver ikke at undslippe dem alle, kun den der forårsager problemer:


:w C:projectslinux\\%:t