假设 Vim 中的当前行包含:
ls /home
Run Code Online (Sandbox Code Playgroud)
(或任何 shell 命令)。因此,将这一行发送到 (bash) shell 并在 Vim 中读取结果的快速方法是什么?并且不使用插件。
最简单的方法是放在:!
行首(with I:!
),然后yy
将该行拉入未命名寄存器,最后使用@"
将未命名("
)寄存器作为宏调用。对于 vim,这完全等同于键入
:!ls /home
Run Code Online (Sandbox Code Playgroud)
在正常模式下。如果像我一样,你;
和:
你的.vimrc正常模式切换身边,你要插入一个分号来代替。
可能可以就地更改寄存器,而不是预先添加到实际行。
也可以通过y$
拉到行尾(无需上述编辑),然后输入
:!<c-r>"
Run Code Online (Sandbox Code Playgroud)
...(<c-r>
意思是Ctrl+ r)这将扩展到
:!ls /home
Run Code Online (Sandbox Code Playgroud)
(或任何你猛拉的命令)。你需要使用y$
而不是yy
因为否则它会扩展到
:ls /home^M
Run Code Online (Sandbox Code Playgroud)
^M
那里代表换行符;不过,这很容易用一个退格键删除。
第二种方法可能会稍微快一点,但是任何涉及Ctrl密钥的东西对我来说似乎都不太像 vim。
归档时间: |
|
查看次数: |
1576 次 |
最近记录: |