【问题标题】:Stop Vim wrapping lines in the middle of a word停止 Vim 在单词中间换行
【发布时间】:2012-03-13 21:33:15
【问题描述】:

在执行:set wrap 之后,Vim 换行比窗口长。

但是是否可以让 Vim 仅在空格处换行,而不是在单词中途换行?

【问题讨论】:

标签: vim


【解决方案1】:

:help wrap

此选项更改文本的显示方式。它不会改变文本 在缓冲区中,请参阅“textwidth”。 启用时,比窗口宽度长的行将换行并 显示在下一行继续。离线时不会换行 并且只会显示部分长行。当光标在 移动到未显示的部分,屏幕将滚动 水平。 如有必要,将在单词中间换行。 见 'linebreak' 在单词边界处换行。

:help linebreak

如果在 Vim 上,会在 'breakat' 中的字符处换行,而不是 比最后一个适合屏幕的字符。

:help breakat

'breakat' 'brk' string(默认" ^I!@*-+;:,./?"

所以,:set linebreak 它应该可以开箱即用。或者你可以限制breakat 只在空格上打断,而不是空格+标点符号。

【讨论】:

  • 漂亮的答案!
【解决方案2】:

使用

:set linebreak

或简称'lbr'。它会在您的 'breakat' 选项中包含的字符上换行,默认情况下包含一个空格。

【讨论】:

    【解决方案3】:

    打开vim,按esc回车

    :set lbr

    【讨论】:

      【解决方案4】:

      以下将在不破坏任何单词的情况下进行换行并保留较短的行。

      :set formatoptions+=w
      :set tw=80
      gggqG
      

      要尝试格式化当前段落,请尝试以下操作:

      :nnoremap Q gqip
      

      【讨论】:

        【解决方案5】:

        以下命令对我有用,我在工作中使用 Red Hat 7.x,在家里使用 Cygwin 3.1.4。感叹号的作用类似于非运算符。

        :set wrap
        :set wrap!
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-08-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-02
          • 2014-05-20
          • 1970-01-01
          相关资源
          最近更新 更多