如何设置 iskeyword 使其仅在 vim 命令行模式下编辑时适用?

问题描述 投票:0回答:1

我试图研究改变 Vim 命令行模式下

<c-w>
的行为,这样当我在编辑路径时按下该键时,它只会删除最后一个正斜杠
/

令我惊讶的是,

:help c_CTRL-W
说行为是由
iskeyword
选项决定的:

CTRL-W      Delete the |word| before the cursor.  This depends on the
        'iskeyword' option.

在我的测试中,我确实观察到命令行模式下的 CTRL-W 会根据我正在编辑的文件的

iskeyword
选项进行更改,这会导致编辑命令时的体验不一致。

有谁知道如何设置

iskeyword
,使其只影响命令行模式?

vim neovim
1个回答
0
投票

要自定义 Vim 中命令行模式的行为,您可以创建一个映射,删除直到最后一个正斜杠 / 的文本。您可以通过在 vimrc 文件中创建自定义映射来实现此目的。具体方法如下:

" 在命令行模式下定义映射以删除直到最后一个正斜杠 cnoremap egetline(0)[0:col(".")-2]=~#'\w\zs/'|col(".")>2?'/ %#.*':getline(0) [:-2]

© www.soinside.com 2019 - 2024. All rights reserved.