我有一个文件列表
file1.ext
file2.ext
...
Run Code Online (Sandbox Code Playgroud)
如果我的光标在 file2.ext 内,如何创建一个名为 file2.ext 的文件。有点像gf仅用于创建新文件(这是一种假设情况,只是认为有一天可能会有所帮助)。
小智 18
我想到的第一件事是使用touch命令将光标下的文件名传递给它。
:map <silent> <leader>cf :!touch <c-r><c-p><cr><cr>
Run Code Online (Sandbox Code Playgroud)
但是有一个纯 Vim 解决方案可跨平台移植。内置函数writefile将列表逐行写入文件。自然地,当输入列表为空时,它会创建一个空文件。(有关:help writefile详细信息,请参阅。)我们可以利用这种副作用:
:map <silent> <leader>cf :call writefile([], expand("<cfile>"), "t")<cr>
Run Code Online (Sandbox Code Playgroud)
请注意,可以使用不同的expand模式来调整文件名提取(请参阅 参考资料:help expand())。
顺便说一句,如果不想创建文件,而只想打开它进行编辑,可以定义一个类似gf映射:
:map <leader>gf :e <cfile><cr>
Run Code Online (Sandbox Code Playgroud)
其中:e命令可以替换为:tabe或类似的命令。
| 归档时间: |
|
| 查看次数: |
2905 次 |
| 最近记录: |