Po kilku poszukiwaniach dowiedziałem się, że :echo @%
wyświetla aktualną nazwę pliku w dolnym wierszu vim-screen.
Chciałbym zrzucić nazwę pliku (z pełną ścieżką i bez) do zawartości pliku bez wychodzenia vim
.
Czy jest na to jakiś sposób?
Jestem pewien, że istnieją inne sposoby, aby to zrobić ... ale głównym poleceniem, które chcesz, jest :r[ead]
wstawienie wyniku polecenia do bufora.
Tak więc, aby wstawić tylko nazwę pliku:
:r! echo %
Aby uwzględnić pełną ścieżkę:
:r! echo %:p
Po więcej informacji:
:help read
:help filename-modifiers
Bieżąca nazwa pliku znajduje się w "%
rejestrze, więc możesz ją wstawić (w trybie wstawiania) za pomocą <c-r>%
; pełną ścieżkę można wstawić za pomocą <c-r>=expand("%:p")
. Możesz zrobić z niego makro, jeśli często go używasz. Aby uzyskać więcej podobnych sztuczek, zobacz :h expand
i :h "=
.
<c-r>
mapowane jako polecenie powtórzenia?<c-r>
określa, że następny znak jest rejestrem."%p
w trybie normalnym lub wizualnym.Jak widać
:h registers
,"%
rejestr zawiera bieżącą nazwę pliku.:pu[t]
Polecenie wstawia zawartość rejestru do tekstu.Aby wstawić rzeczywistą nazwę pliku, możesz wpisać dowolny z nich w trybie poleceń:
lub
Aby wstawić nazwę pliku z pełną ścieżką, wpisz
w trybie komend.
Więcej informacji:
Wpisując
"rp
, możesz wkleić zawartość rejestru"r
.źródło
:put "%:p"
chyba nie działa dla mnie. Wydaje się, że działa tylko z funkcją expand () , jak w:put =expand('%:p')
:, co czyni go nie mniej kłopotliwym niż<c-r>=expand('%:p')
niestety.Prostym sposobem jest uruchomienie:
!!
zastępuje bieżący wiersz wynikiem następującego po nim polecenia.%
jest zastąpiony nazwą edytowanego pliku w poleceniu, aby skutecznie wstawić tę nazwę do edytowanego pliku.Nazwa pliku została przekazana do komendy vi (m) i może zawierać ścieżkę względną lub bezwzględną. Jeśli chcesz go usunąć i zachować tylko nazwę pliku, uruchom
źródło
Jeśli musisz to robić często, przydatne może być powiązanie sekwencji klawiszy z tym, co chcesz, zgodnie z http://vim.wikia.com/wiki/Insert_current_filename
Powyżej wszystko działa bezpośrednio
vim
dla sesji lub można je umieścić w.vimrc
(gdzie dwukropek na linii jest opcjonalny).źródło
Google szukałem najprostszego sposobu wstawienia bieżącej nazwy pliku (bez ścieżki lub rozszerzenia) do bieżącej pozycji (bez nowej linii, bez zastępowania bieżącej linii). Więc łącząc poprzednie odpowiedzi i ten link , właśnie tego szukałem.
W trybie wstawiania :
Następnym razem (z poleceniem już w historii):
źródło