如何将视觉块发送到外部命令?
我使用 Ctrl-q 选择我的块,然后按,!*program_name*但 Vim 发送整行而不是选定的文本块。
我在 Windows 10 上使用 gVim。
小智 3
Vim 总是将整行发送到外部命令,但是您可以使用本问题中 romainl 的答案功能来做到这一点:
将非逐行选择传递给外部程序是这样完成的:
- 备份寄存器的内容
- 拉出该寄存器中的选择
- 将该寄存器的内容传递给 system() 并输出结果
- 恢复寄存器
这是在一个函数中:
Run Code Online (Sandbox Code Playgroud)function! VisualCountWords() range let n = @n silent! normal gv"ny echo "Word count:" . system("echo '" . @n . "' | wc -w") let @n = n " bonus: restores the visual selection normal! gv endfunction您可以在这样的映射中使用:
xnoremap <F6> :call VisualCountWords()<CR>
| 归档时间: |
|
| 查看次数: |
2165 次 |
| 最近记录: |