经过一番搜索,我知道:echo @%在 vim-screen 的底行显示当前文件名。
我想将文件名(带和不带完整路径)转储到文件的内容中而不离开vim.
有没有办法做到这一点?
Kev*_*vin 46
当前文件名在"%寄存器中,因此您可以插入它(在插入模式下)<c-r>%;可以插入完整路径<c-r>=expand("%:p")。如果你经常使用它,你可以制作一个宏。有关更多类似技巧,请参阅:h expand和:h "=。
J.C*_*ski 33
我确定还有其他方法可以做到这一点……但是您想要的主要命令是:r[ead]将命令的输出插入缓冲区。
因此,仅插入文件名:
:r! echo %
Run Code Online (Sandbox Code Playgroud)
并且,要包含完整路径:
:r! echo %:p
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息:
:help read
:help filename-modifiers
Run Code Online (Sandbox Code Playgroud)
小智 17
从 中可以看出:h registers,"%寄存器包含当前文件名。该:pu[t]命令将寄存器的内容插入到文本中。
因此,要插入实际文件名,您可以在命令模式下键入以下任一命令:
:put %
Run Code Online (Sandbox Code Playgroud)
或者
"%p
Run Code Online (Sandbox Code Playgroud)
要插入带有完整路径的文件名,请键入
:put=expand('%:p')
Run Code Online (Sandbox Code Playgroud)
在命令模式下。
更多信息:
:h pu[t]
Run Code Online (Sandbox Code Playgroud)
通过键入"rp您可以粘贴 register 的内容"r。
一个简单的方法是运行:
!!echo %
Run Code Online (Sandbox Code Playgroud)
!! 正在用它后面的命令的结果替换当前行。
% 被命令中的已编辑文件的名称替换,因此这将有效地将该名称插入到已编辑的文件中。
文件名是您传递给 vi(m) 命令的文件名,可能包含相对或绝对路径。如果您想删除它并只保留文件名,请运行
!!basename %
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14140 次 |
| 最近记录: |