Risposte:
Puoi premere {count}Ctrl-G:
{count}CTRL-G Like CTRL-G, but prints the current file name with
full path. If the count is higher than 1 the current
buffer number is also given.
La pressione 1seguita da Ctrl+ Gmostra il percorso completo del file corrente. Se {count}è maggiore di 1, verrà mostrato anche il nome del buffer.
(Premendo solo Ctrl+ viene Gmostrato il percorso relativo alla directory di lavoro corrente di Vim, come sottolineato da Jasper nei commenti.)
È possibile utilizzare il comando seguente in .vimrcper aggiungere l'intero percorso alla riga di stato, in modo che sia sempre visibile:
set statusline+=%F
C-gessere predefinito 0C-ge 2C-gmostra anche il numero di indice del buffer (a partire da 1).
1C-g!
Register %contiene il nome del file corrente.
È possibile immettere i seguenti comandi per visualizzare le informazioni visualizzate:
:echo @% |" directory/name of file
:echo expand('%:t') |" name of file ('tail')
:echo expand('%:p') |" full path
:echo expand('%:p:h') |" directory containing file ('head')
Se si desidera solo visualizzare il nome del file corrente, digitare :f/ :lso premere Ctrl- g(per il percorso completo premere 1quindi Ctrl- g).
Nella modalità di inserimento, digitare Ctrl- rquindi %per inserire il nome del file corrente.
I seguenti comandi inseriscono nel buffer righe costituite dal percorso completo dei file correnti e alternativi:
:put =expand('%:p')
:put =expand('#:p')
Fonte: ottieni il nome del file corrente su vim wikia
Relazionato:
=expand...espressioni dopo anche Ctrl-Rin modalità inserimento.
È possibile utilizzare :!ls %:pper ottenere il percorso completo del file corrente.
A seconda del contesto ex, %significherà il contenuto del file o il nome del file. Quando si esegue il bombardamento, rappresenta il percorso del file relativo alla directory corrente. Il comando ' %:p' aggiungerà il modificatore del nome file del percorso completo a %.
Ci sono alcuni altri modificatori di nome file interessanti come:
:~: Ottieni il percorso del file relativo alla home directory (questo non ha funzionato per me per qualche motivo):.: Ottieni il percorso del file relativo alla directory corrente ( %impostazione predefinita):r: Nome file root. Il nome del file senza estensione.:e: Estensione del file.:h: Split su /e restituire la metà sinistra (cioè se sto modificando un file in un percorso di /tmp/test.txte corsa %:p:htornerà/tmp:t: Dividi su /e restituisci la metà giusta (cioè se sto modificando un file in un percorso di /tmp/test.txted eseguirò %:p:ttorneràtext.txtSi può vedere la directory di lavoro corrente con :pwd. Naturalmente, questa è solo la directory e non il nome file. Per ottenere la directory di lavoro e il nome file, possiamo usare il registro speciale %, che contiene informazioni sul file corrente.
Se lo usi :echo @%, otterrai la directory e il nome del file corrente.
Se lo usi :echo expand('%:p'), otterrai il percorso completo e il nome file del file corrente. Questo è molto simile alla risposta di CharlesL .
Mi ricordo di questo, però, perché se si utilizza l'aiuto di vim :h expand, allora ricorda che %e %:ped i loro parenti.
Io uso:
:f[ile]
Questo è :fo :file.
Sono sorpreso che nessuno lo menzioni nelle risposte, mi sto perdendo qualcosa?
Per mostrare il percorso completo di tutti i file, inclusi i collegamenti simbolici risolti, utilizzare quanto segue.
:echo resolve(expand('%:p'))
Ci sono risposte sempre migliori, ma se (per qualche motivo) volessi usare la shell per ottenere il percorso completo del file (questo è più utile se hai intenzione di eseguire qualche altra operazione sul file con la shell), su un sistema simile a Unix potresti eseguire:
:!realpath %
o:
:'<,'>!realpath %
per inserire il percorso nel documento sopra la selezione corrente.
Register %contiene sempre il nome del file. Un esempio del mondo reale potrebbe essere se stai modificando un file di configurazione, ma non hai i permessi di scrittura (e non vuoi che esegua Vim come root), potresti modificare il file, quindi eseguire:
:w ! sudo tee %
per salvare il file (un po 'offtopico lì, ma è un buon esempio di cos'altro si può fare con il %registro).
realpathnon è POSIX, quindi potrebbe essere più semplice da fare:!echo "$PWD/%"
Devi impostare la tua linea di stato in modo che sia visualizzabile e anche impostarla sul percorso. L'ho fatto in modo permanente aggiungendo le due righe seguenti al mio ~ / .vimrc
set laststatus=2
set statusline+=%F
Se vuoi eseguirlo solo una volta. Quindi quando VIing un tipo di documento
:set laststatus=2 <ENTER>
:set statusline+=%F <ENTER>
Uso la compagnia aerea VIM per questo e alcune belle funzionalità:
Puoi mostrare il percorso completo del file che stai modificando nella barra del titolo, che è un modo conveniente per mostrare il percorso del file secondo me.
Per fare ciò, è necessario impostare l' titleopzione e titlestring. Attualmente sto usando le seguenti impostazioni:
set title
set titlestring=%{hostname()}\ \ %F\ \ %{strftime('%Y-%m-%d\ %H:%M',getftime(expand('%')))}
Mostrerà il nome host di Vim, quindi il percorso completo del file e seguito dall'ultima modifica del file. Vedi la figura sotto per una demo
Ctrl+Gpiù simile a 'path relativo a vim's cwd'?