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 .vimrc
per aggiungere l'intero percorso alla riga di stato, in modo che sia sempre visibile:
set statusline+=%F
C-g
essere predefinito 0C-g
e 2C-g
mostra 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
/ :ls
o 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-R
in modalità inserimento.
È possibile utilizzare :!ls %:p
per 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.txt
e corsa %:p:h
tornerà/tmp
:t
: Dividi su /
e restituisci la metà giusta (cioè se sto modificando un file in un percorso di /tmp/test.txt
ed eseguirò %:p:t
torneràtext.txt
Si 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 %:p
ed i loro parenti.
Io uso:
:f[ile]
Questo è :f
o :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).
realpath
non è 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' title
opzione 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+G
più simile a 'path relativo a vim's cwd'?