在Linux Fedora上,我正在使用Vim和Markdown。
使用项目符号后。我想回去继续输入文字。我点击了Enter并删除了最后一个项目符号。
删除空子弹点后按Enter键。新行增加了4个空格。我想从行的开头开始换行。
当我使用大量的子弹点段落时,这非常烦人。
如何摆脱这种行为?
答案 0 :(得分:1)
缩进新行以匹配之前的行是您可以关闭的vim选项autoindent
,smartindent
或cindent
。
*'autoindent'* *'ai'* *'noautoindent'* *'noai'*
'autoindent''ai'布尔值(默认关闭) 缓冲区本地 在开始换行时从当前行复制缩进(键入 在插入模式下或使用“o”或“O”命令时)。如果你不 在除了CTRL-D之外的新行上键入任何内容然后键入 ,CTRL-O或,缩进再次删除。移动光标 到另一行具有相同的效果,除非包含“I”标志 在'cpoptions'中 当autoindent打开时,格式化(使用“gq”命令或当你 在插入模式下达到'textwidth')使用第一个缩进 行。
当'smartindent'或'cindent'出现时,缩进被改变了 另一种方式 设置'paste'选项后,'autoindent'选项被重置。 {与Vi的小差异:在输入时删除缩进 或者,向上或向下移动时的光标位置是在 删除缩进; Vi将光标放在已删除的缩进中。
*'smartindent'* *'si'* *'nosmartindent'* *'nosi'*
'smartindent''si'boolean(默认关闭)
缓冲区本地 {Vi in Vi}
{没有编译时不可用 | + smartindent |功能}
在开始新线路时进行智能自动调整。适用于C类 程序,但也可以用于其他语言。 'cindent'确实如此 像这样的东西,在大多数情况下效果更好,但更严格, 看| C-indenting |。当'cindent'打开或'indentexpr'设置时, 设置'si'没有效果。 'indentexpr'更先进 替代。
通常情况下,'autoindent'也应该在使用'smartindent'时打开。 缩进自动插入: - 以“{”结尾后的一行 - 以“cinwords”中的关键字开头的一行后面 - 在以'}'开头的行之前(仅使用“O”命令) 当输入'}'作为新行中的第一个字符时,该行是 给出与匹配'{'相同的缩进 当键入“#”作为新行中的第一个字符时,缩进为 该行被删除,'#'放在第一列。缩进 恢复下一行。如果你不想这样,请使用它 mapping:“:inoremap#X ^ H#”,其中^ H是用CTRL-V CTRL-H输入的。
使用“>>”时命令,以'#'开头的行不会移位 正确的。
注意:设置'compatible'时,'smartindent'会被重置。 '粘贴'时 已设置智能缩进已禁用。
*'cindent'* *'cin'* *'nocindent'* *'nocin'*
'cindent''cin'boolean(默认关闭)
缓冲区本地 {Vi in Vi}
{没有| + cindent |编译时不可用 功能}
启用自动C程序缩进。请参阅“cinkeys”以设置键 在插入模式下触发重新定位,在“cinoptions”中设置你的 首选缩进样式。
如果'indentexpr'不为空,则它会否决'cindent'。 如果'lisp'没有打开并且'indentexpr'和'equalprg'都为空, “=”运算符使用此算法缩进而不是调用 外部计划。
见| C-indenting |。
当你不喜欢“cindent”的作品时,试试'smartindent' 选项或'indentexpr'。
设置'粘贴'时不使用此选项 注意:设置“兼容”时,此选项会重置。
答案 1 :(得分:1)
我通过reddit用户dutch_gecko
从here得到了这个答案。
在vimrc中:
let g:vim_markdown_new_list_item_indent = 0
setlocal formatoptions=tqlnrc
set comments=b:>
这对我有用。