Vim 更改命令模式下的删除默认行为

Vim 更改命令模式下的删除默认行为,vim,Vim,从vim的帮助中获取: 是否可以禁用此操作:在光标前的行尾:字符处。如果是这样,怎么做呢?如果您对默认行为不满意,可以创建一个映射来处理命令EOL case处的光标 cnoremap <expr> <del> len(getcmdline())+1==getcmdpos()?'<left>' : '<del>' 由于您没有告诉DEL在光标位于EOL时要执行什么操作,因此我仅使用左箭头键作为示例 这样,如果光标在下线,按DEL键,光标将向左移动一个

从vim的帮助中获取:


是否可以禁用此操作:在光标前的行尾:字符处。如果是这样,怎么做呢?

如果您对默认行为不满意,可以创建一个映射来处理命令EOL case处的光标

cnoremap <expr> <del> len(getcmdline())+1==getcmdpos()?'<left>' : '<del>'
由于您没有告诉DEL在光标位于EOL时要执行什么操作,因此我仅使用左箭头键作为示例


这样,如果光标在下线,按DEL键,光标将向左移动一个位置,而不删除任何内容。否则,它将执行正常的删除功能。

您必须编写一个函数,检查您是否在行的末尾,然后将其映射到键。您到底想做什么?你在插入模式或正常模式下按了DEL?@Kent-在命令模式下,事实上,如果不清楚,很抱歉,但是c_哦,我的错,我没有注意到c_。如果你在下线时按DEL,你会怎么想@大卫542
cnoremap <expr> <del> len(getcmdline())+1==getcmdpos()?'<left>' : '<del>'