Vim:附加到行尾,但如果没有空格则添加空格

时间:2014-03-15 01:16:44

标签: vim

这里有一些新的Vim。在我到达Ruby之前,我一直在使用Vim在Markdown上练习,这是我的日常工作。我经常遇到这个问题:

My sentence is this._
My sentence is this.

在第一个例子中,我有一个"空间"由_表示。我可以按A来追加并输入下一个句子。但我也有一个没有空间"在我按A之后的结尾处的情况我必须在输入内容之前按空格键。如何添加空格然后在一次按键中追加?

2 个答案:

答案 0 :(得分:2)

关键是通过映射。使用:help map-expr,您甚至可以构建一个映射,当已经有尾随空格时解析为A,如果没有,则为A<Space>。使用:nnoremap <buffer> ...,您可以将映射限制为当前Markdown文件。尽管如此,我还是不相信这种映射通常是有益的(甚至只是对Markdown文件);当你需要在没有空格分隔符的情况下追加时,仍会有很多情况,所以覆盖A命令是不可能的,你仍然需要它。

快速类型单键映射的数量非常有限(大多数已经采用),在最好的情况下,您只需保存一次按键(Space键的按键)。虽然映射可以提高您的工作效率,但这不是其中之一。继续手动插入该空间(正如您在其他应用程序中一样),并保存该映射以获得更有价值的目标!

答案 1 :(得分:1)

您可以将A重新加载为A<space>,将以下内容添加到.vimrc。现在,当您按A时,它会在行尾添加一个空格,然后您可以添加任何内容。

nnoremap A A<space>