假设我正在vim中编辑一些Python代码,如下所示: myobj.myfunc("Some string parameter that goes on and on and on and on and sometimes doesn't" "split very" "neatly over different lines so that" "it is formatted attractively") 我希望重新格式化,以便重新设置到textwidth我设置的位置: myobj.myfunc("Some string parameter that goes on and on and " "on and on and sometimes doesn't split very " "neatly over …
可以说我想在文档中生成以下文本: % % Not Important % O -------------------------> % | % S | % o | % m | % e | % | % M | % s | % g | % | % V 是否有任何简单的方法可以像上述那样垂直书写“某些消息”,而不必在每行中手动插入每个字符?
我目前正在写很多纯文本(以及LaTeX,段落中的格式最少),如果可以设置vim保留每个句子(为简单起见,文本以'。','!或“?”;这是一个终止标点符号,后跟一个空格,以避免在其自己的行上出现小数点),因此VCS差异将更加有用。 最少,我想gq格式化以下文本: He lay flat on the brown, pine-needled floor of the forest, his chin on his folded arms, and high overhead the wind blew in the tops of the pine trees. The mountainside sloped gently where he lay; but below it was steep and he could see the dark …
当我不得不输入大量文本shift时,在写句子的第一个字母时,我常常会按住手指,这通常会给出: [...]end of sentence. NEw sentence[...] 这里E的NEw应该是小写。然后,我试图创建一个函数来检测我键入的句子的第一个单词的第二个字母是否为大写字母,而将其为小写字母。重要的部分是,当我键入句子的结尾时,更正应自动完成。 到目前为止,我已经尝试过使用autocommand事件,InsertCharPre然后才意识到该事件触发的功能无法修改文本。 有什么好的解决方案? 请注意,到目前为止,我不需要关注诸如首字母缩略词之类的边缘情况,首字母缩略词应使用大写字母或类似的东西。 编辑我做了这个,这不是一个完美的解决方法: autocmd CursorMovedI * call RemoveUnwantedUpper() function! RemoveUnwantedUpper() " Get the current sentence " Based on http://stackoverflow.com/a/23315227/4194289 let l:save_clipboard = &clipboard set clipboard= " Avoid clobbering the selection and clipboard registers. let l:save_reg = getreg('"') let l:save_regmode = getregtype('"') normal! …
我对Vim中的一些默认值有些疑惑。特别是对于gq{motion},据说 [...] If the 'textwidth' option is 0, the formatted line length is the screen width (with a maximum width of 79). 我认为,如果将最大宽度设置为,应该更有意义80。 有人可以启发我吗?我想我缺少了一些东西。
很多时候,我在VIM中编写markdown,并且这些markdown中会有段落。为了帮助编辑,我将Vim设置为在80个字符上换行。如果我继续输入,效果很好,但是问题是,如果我需要进行一些校正,它将变得非常烦人。 演示(摘自Wikipedia一阶逻辑): The adjective "first-order" distinguishes first-order logic from higher-order logic in which there are predicates having predicates or functions as arguments. In first-order theories, predicates are often associated with sets. In interpreted higher-order theories, predicates may be interpreted as sets of sets. 到目前为止,一切都很好。但是,当我修改本文时,我可能会决定在中间添加一些内容,例如: The adjective "first-order" distinguishes first-order logic …
禁用smartindent和autoindent选项后,我已经在JavaScript文件中尝试过使用textwidth = 80,但是仍然是一样的。由于textwidth可以同时插入长度超过80个字符的单词,因此也会自动发生。 怎么了: /** * - a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k l * m n o p …
我使用gvim编写电子邮件,并用于tw=72延长行数。现在,我还在同一文档中编辑基本邮件头,例如,我将收件人添加到邮件中。现在,tw=72它每次也会中断72个字符。 如何tw=0在前4行(即标题部分)以及tw=72文档的其余部分设置? 我的formatoptions看起来像这样,如果相关的话: set fo+=tcqn
阅读help textwith和之后help fo-table,我希望当我设定 set textwidth=20 " for demonstration set formatoptions=tcq 那么插入文本最终总会导致换行,但事实并非如此。包装只发生在光标之前(或之前)。而且,如果我粘贴,则根本不会包裹。 示例(Vim 7.4): 12345678901234567890 This is a long line 如果我点击A并开始输入,该行将自动换行。 但是,如果我点击02wi并键入“ still”,它不会自动换行: 12345678901234567890 This is still a long line 我必须输入另外7个字符,然后才能换行,然后问题在下一行继续: 12345678901234567890 This is still more <-- it wraps here typing and again a long line 粘贴也不会触发换行: 12345678901234567890 This is a …