MODIFICA: Suggerisci mappature piacevolmente simmetriche per il caso di divisione verticale, poiché Vim ha due mappature predefinite per il caso di divisione orizzontale.
Esistono diversi modi per modificare il "file sotto il cursore" e mentre puoi sicuramente rimappare gfper modificarlo in una nuova scheda come menzionato da @ alexander-myshov, ciò significa che hai due modi per modificarlo in una nuova scheda, ma non c'è modo di modificalo nella finestra corrente, cosa che a volte potresti voler fare. Non è difficile utilizzare i mapping standard, ma se si desidera rimappare uno di essi gf, suggerirei di cambiare i mapping, in modo da non perderne uno.
Alcuni dei modi per modificare un nome file sotto il cursore sono
- gf - Modifica il file esistente sotto il cursore nella stessa finestra
- C-Wf - Modifica il file esistente sotto il cursore nella finestra divisa
- C-WC-F - Modifica il file esistente sotto il cursore nella finestra divisa
- C-Wgf - Modifica il file esistente sotto il cursore in una nuova scheda
Non esiste un mapping standard per modificare il file esistente sotto il cursore in una divisione verticale, ma è possibile ottenerlo prima dividendo la finestra verticalmente e quindi modificando il file sotto il cursore nella finestra corrente.
- C-Wv+ gf- Modifica il file esistente sotto il cursore nella finestra divisa verticalmente
Come puoi vedere sopra, ci sono due mappature predefinite per la modifica del file sotto il cursore in una divisione orizzontale. È quindi possibile rimappare uno di essi nella stringa di tasti sopra, estendendo il gruppo di mappe per coprire anche il caso di divisione verticale. È possibile associare qualsiasi cosa, naturalmente, ma questo sembra per completare la simmetria bene: nnoremap <C-W><C-F> <C-W>vgf
. Adesso hai
- gf - Modifica il file esistente sotto il cursore nella stessa finestra
- C-Wf - Modifica il file esistente sotto il cursore nella finestra divisa
- C-WC-F - Modifica il file esistente sotto il cursore in una finestra divisa verticalmente
- C-Wgf - Modifica il file esistente sotto il cursore in una nuova scheda
Puoi anche andare a una riga particolare nel file, se il nome del file sotto il cursore è seguito da un numero di riga. Se hai
filename:10
puoi modificare il file e spostare il cursore sulla riga 10 con gF. L'equivalente è vero per C-WFuna divisione e C-WgFuna tabpage. Il completamento della simmetria per una divisione verticale non è così semplice qui, ma suggerirei che la C-WC-S-Fmappa ottenuta con nnoremap <C-W><C-S-F> <C-W>vgF
, imitando il Fo Shift+ fdalle mappe predefinite come candidato.
Questo :
è un esempio, puoi usare qualsiasi carattere che non sia un carattere di nome file (vedi :h 'isfname'
).
Tutti questi comandi vengono con salsa di mele, come ad esempio
- espandi i caratteri jolly
- cerca in più punti della directory corrente, secondo la tua
'path'
opzione
- aggiungendo un'estensione di file al nome del file, secondo la tua
'suffixesadd'
opzione
- altrimenti modifica il nome file specificato per trovare una corrispondenza, in base alla tua
'includeexpr'
opzione
Maggiori informazioni su :help gf
e gli argomenti della guida per queste varie opzioni.
Se il nome del file sotto il cursore indica un file che non esiste, è meglio usare i comandi di modifica standard con <cfile>
, ad esempio
:edit <cfile> // edit non-existent file under cursor in current window
:split <cfile> // edit non-existent file under cursor in split window
:vsplit <cfile> // edit non-existent file under cursor in vertical split window
:tabe <cfile> // edit non-existent file under cursor in new tabpage
e con questi ovviamente puoi usare cose come :spl+10 filename
spostare il cursore su una particolare linea o :tabe+/cologne filename
spostare il cursore alla prima occorrenza di un motivo.
'hidden'
dell'opzione (set hidden
) consente di allontanarsi dai buffer non salvati. Per me, questo è stato un enorme incentivo per la produttività ed è stato fondamentale smettere di fare così tanto affidamento su frazioni e schede.