You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/blog/vim-is-your-next-prose-editor/index.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ tags:
18
18
19
19
光标移动是 Vim 用户永远的第一课,但我一直觉得很多原生的光标移动动作(Motion)都是为了自然语言文本而设定的。如果说以词为界限的动作——<kbd>w</kbd>(下一个词头)、<kbd>e</kbd>(下一个词尾)、<kbd>b</kbd>(上一个词头)这些——尚可适用于程序代码,那像 <kbd>)</kbd> 这种则完全和编程没有关系了:它指的是跳到**下一句话**的开头!“下一句话”是怎么定义的呢?是以句号、问号、感叹号等常规文法中的标点符号再加空格所隔开的内容。再进一步,我们还有 <kbd>}</kbd>,走到下一个段落的开头,而段落是由空行隔开的内容。<kbd>]]</kbd> 则是走到下一个章节的内容,章节标记就主要是在设置项里匹配确定的了。
20
20
21
-
在编程中,我们根本没有句子、段落、章节的划分,这些键位就自然没有用了。即便编程当中我们会用空行隔开逻辑上不太相关的代码段,但是空行可以出现在任何逻辑层级(比如函数定义内和函数定义体之后),所以以空行为单位的光标移动,在编程场景下仍旧不是最佳方案。而在自然语言文书中,以空行分段可以说是西文中非常常见的手段,单论数字文件的话它也是在富文本格式出现之前、纯文本西文的主要分段手段。而在 LaTeX、Markdown 这些文本标记语言从西方走向世界之后,空行分段的习俗也广泛传播到了中日韩等语言的数字文档中。(并且即便传统中文强调段前顶头空两格标志分段,在基于 Word 等现代软件的电子文档中,也经常见到段间有额外垂直空间。)不过其中有一个局限是,句子的划分是严格按照指定的拉丁标点符号分的,也就是说在中日韩写作场景下不太适用。
21
+
在编程中,我们根本没有句子、段落、章节的划分,这些键位就自然没有用了。即便编程当中我们会用空行隔开逻辑上不太相关的代码段,但是空行可以出现在任何逻辑层级(比如函数定义内和函数定义体之后),所以以空行为单位的光标移动,在编程场景下仍旧不是最佳方案。而在自然语言文书中,以空行分段可以说是西文中非常常见的手段。而在 LaTeX、Markdown 这些文本标记语言从西方走向世界之后,空行分段的习俗也广泛传播到了中日韩等语言的数字文档中。(并且即便传统中文强调段前顶头空两格标志分段,在基于 Word 等现代软件的电子文档中,也经常见到段间有额外垂直空间。)不过其中有一个局限是,Vim 中句子的定义是严格按照指定的拉丁标点符号分的,也就是说在中日韩写作场景下不太适用。
0 commit comments