vim中$和g_之间的区别?

时间:2012-08-11 21:28:48

标签: vim

我试图在vim中学习一些新的简洁快捷方式,我发现了g_。根据 http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/

$  → go to the end of line
g_ → go to the last non-blank character of line

我何时会使用g_代替$?

2 个答案:

答案 0 :(得分:9)

g_非常棒,当您将文本粘贴到不希望包含换行符的位置时 - 就像命令行一样,它会自动运行命令。

答案 1 :(得分:7)

我认为最重要的区别只是在帮助文件中说明:

:h $
In Visual mode the cursor goes to just after the last character in the line.

因此,如果你执行 v $ d ,它会删除包括“在最后一个字符之后”的新行,因此它将带来该行低于当前的一个。但如果你做 v g _ d ,它将保留换行符。

我实际上不了解g_,似乎很有用。

修改由于这个答案得到了回复,我已经使用g_(及其反向,_)来制作一个映射,用于阻止/删除当前行,不包括前导/尾随空格并排除换行符:

" delete/yank line, but only whitespace-trimmed version
nnoremap <Leader>dd _yg_"_dd
nnoremap <Leader>yy _yg_