我在 vim 中写了一段文本,但不想超过 80 个字符的行长限制。现在我在第 72 个字符(一个空格)上开始写一个单词。这个单词在第 82 个字符处结束。有没有一些快速技巧可以将最后一个空格替换为换行符(或以某种方式将最后一个单词移动到新行),并将光标放在该单词的末尾,这样就可以
Esc hhhhhhhhhh i Enter Esc llllllllll i blah blah blah
这将是
Esc magic i blah blah blah
?
答案1
有很多方法可以做到这一点。
这b
键返回一个单词,乙将返回一个“大”单词(例如,b 将在破折号处停止)。因此,您可以按
esc B h r enter
如果你想回到输入模式,你可以这样做
esc B i enter
如果你经常这样做,你可以录制一个宏。要录制宏,请按问后面跟着任意字母(你为该字母的注册表分配一个宏)。假设我们想将第一个序列录制为一个宏,并将其分配给是注册表。你会这样做:
q z B h r enter q
现在只要你按@z在正常模式下,它会返回一个单词,并用换行符替换它前面的字符。
更多关于宏的信息请点击这里 http://www.thegeekstuff.com/2009/01/vi-and-vim-macro-tutorial-how-to-record-and-play/
答案2
如果将“textwidth”选项设置为 80,Vim 可以自动执行此操作。您可以通过在 .vimrc 或 _vimrc 文件中放入此行来实现:
set textwidth=80
添加文本时,这将在第 80 列或之前换行。它不会重新格式化整个段落。在插入模式下执行此操作的一种方法是执行
<C-O>gqap
其中 <CO> 表示按住 Ctrl 键并输入字母 o。是重新格式化 ( ) 当前段落 ( )gqap
的命令。执行该命令后,您将返回插入模式,光标gq
ap
关闭回到之前的位置,但不一定回到句子中的同一位置。您可以在
:help i_CTRL-O
:help gq
:help ap
如果 'textwidth' 处的自动换行功能没有按预期工作,则可能需要更改 'formatoption'。请参阅
:help formatoption
:help fo-table
了解更多信息。
如果你不确定 .vimrc 或 _vimrc 文件在哪里,你可以打开 Vim 并执行
:e $MYVIMRC