我首先想到的是分词的问题。 英文中可以通过空格来区分一个单词,但是中文不存在这样的分隔符,于是有这样的问题:
一个例子
计算|机科学是一门非常神奇的学科
此句话中“|”表示光标所在的位置,能否通过caw
、daw
等类似的操作实现对“计算机”这个词语的编辑?
我首先想到的是分词的问题。 英文中可以通过空格来区分一个单词,但是中文不存在这样的分隔符,于是有这样的问题:
一个例子
计算|机科学是一门非常神奇的学科
此句话中“|”表示光标所在的位置,能否通过caw
、daw
等类似的操作实现对“计算机”这个词语的编辑?
好有难度,我估计难以做到,这需要一个大的词库,检索时可能会比较耗性能.
先可以考虑把一个字当成一个词,这个相对比较简单.
不可能的任务。
编辑器怎么知道你 caw 是要选 「计算机」,还是「计算」,还是「计算机科学」呢,边界在哪里?即便是用拼音输入法的库,也得输入 jsj 才能确定。
是有这个问题,我也没想得特别清楚。 不过是不是可以有这两种改进:
顺便请教一下,「」这两个符号是怎么打出来的?
随着计算机性能的增强,也许这不再是问题:[quote=“MephistoMMM, post:2, topic:2072, full:true”] 需要一个大的词库,检索时可能会比较耗性能 [/quote]
这样的话,就直接用cl
,dl
…就行了:
还是拿这句话做例子:
计算|机科学是一门非常神奇的学科
当我想删除从光标位置起到后面的某个字之间的所有文字时(不借助鼠标),我总觉得要迟疑一下
我一般的做法是:
l
移动光标,选中要删除的所有字符d
.
其中的第2步,让人感觉好慢。这也促使我想到了中文分词。不知道大家处理类似的问题是怎么做的,有没有什么好的方法?
是不是能像avy-goto-char
一样,借助拼音来提高这种操作的效率?
渐进式/逐步逼近是一个比较可行的方案,https://github.com/magnars/expand-region.el 也是这种思路。
哈,回去看看你自己的提问贴,我在回复中有写 evil-surround有这个功能吗? - #16,来自 twlz0ne
可以用专门的、现成的中文分词程序。
youdao-dictionary
有这个功能(翻译光标下的中文词汇),但默认没开,一来要安装额外的依赖,二来效果不知道怎样,一实现完,我就没兴趣用了。我把这个功能放到 chinese-word-at-point 里了,用的是 结巴中文分词。
用输入法?macOS 下自带的拼音输入法有这个功能,其它的输入法应该也有。
在 Emacs 里也可以用 C-x 8 RET,再输入 300c
和 300d
。
分词是个不确定性的操作,不觉得是个好主意。
目前 normal state 下面结合拼音首字母操作感觉算比较方便的了。比如你的例子,用 Fjdfj
。
其实我想问的是两个符号最初是怎么输入的。 几乎没有用过这两个字符,看键盘的按键没有对应的,竟然没想到是用输入法@xuchunyang,见笑啦。
真能用拼音首字母啊!?
你说的只是一种设想?还是已经有轮子了?
chinese-pyim
里面有一个函数 pyim-forward-word
可以分词来移动光标。
这个输入法真强大!我以前竟然把它exclude了,真是罪过!
刚对比了一下evil-find-char-pinyin
和pyim-forward-word
,确实如大神所说,拼音首字母操作比较方便!
我为了装逼现注册了一下,哈哈哈:joy: vim下可以在插入模式"C-k"+"<"+“7”,和"C-k"+“7”+">" 具体参照:h digraph-tables
macOS 自带拼音输入还是有点麻烦,一个更便捷的方法是修改 ~/Library/KeyBindings/DefaultKeyBinding.dict。
{
// Multiple sign fix
"^*" = ("insertText:", "×");
// Ideographic space fix
"^$\U0020" = ("insertText:", " ");
// Curly quotes fix
"^[" = ("insertText:", "“");
"^]" = ("insertText:", "”");
"^{" = ("insertText:", "‘");
"^}" = ("insertText:", "’");
// Chinese quotation marks fix
"~[" = ("insertText:", "「");
"~]" = ("insertText:", "」");
"~{" = ("insertText:", "『");
"~}" = ("insertText:", "』");
}
这样就可以直接按 Alt-[ 输入方角引号了。