Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将两个vim命令合并为一个_Vim - Fatal编程技术网

将两个vim命令合并为一个

将两个vim命令合并为一个,vim,Vim,我无法将两个vim命令组合在一起,特别是s和x到r(即拆分窗口并打开当前文件的规范对应项)。有什么帮助吗 谢谢 如果你能把你尝试过但没有成功的东西贴出来,那会有帮助的。一般来说,做你描述的事情应该很简单。将其放入.vimrc文件就足够了: nmap <leader>r <c-w>s<leader>x nmap r sx 这将映射r以扩展到键序列sx。请注意,这些不是“命令”,正如您在问题中所称,它们是“映射”。“命令”在vim中是完全不同的,您可以使用:h

我无法将两个vim命令组合在一起,特别是
s
x
r
(即拆分窗口并打开当前文件的规范对应项)。有什么帮助吗


谢谢

如果你能把你尝试过但没有成功的东西贴出来,那会有帮助的。一般来说,做你描述的事情应该很简单。将其放入
.vimrc
文件就足够了:

nmap <leader>r <c-w>s<leader>x
nmap r sx
这将映射
r
以扩展到键序列
sx
。请注意,这些不是“命令”,正如您在问题中所称,它们是“映射”。“命令”在vim中是完全不同的,您可以使用
:help user commands
了解它


需要注意的一件事是使用
nmap
而不是
nnoremap
。命令
nmap
将左侧的序列映射到右侧的序列,同时重新使用已定义的映射。另一方面,
nnoremap
使用键的原始含义创建一个映射,因此在您的情况下将不起作用(因为
x
是由某个插件定义的)。这可能是您尝试这样做时失败的一个原因,但我无法从您的问题中判断。如果您发布您尝试过但没有成功的内容,这会有所帮助。一般来说,做你描述的事情应该很简单。将其放入
.vimrc
文件就足够了:

nmap <leader>r <c-w>s<leader>x
nmap r sx
这将映射
r
以扩展到键序列
sx
。请注意,这些不是“命令”,正如您在问题中所称,它们是“映射”。“命令”在vim中是完全不同的,您可以使用
:help user commands
了解它


需要注意的一件事是使用
nmap
而不是
nnoremap
。命令
nmap
将左侧的序列映射到右侧的序列,同时重新使用已定义的映射。另一方面,
nnoremap
使用键的原始含义创建一个映射,因此在您的情况下将不起作用(因为
x
是由某个插件定义的)。这可能是您尝试执行此操作时失败的原因之一,但我无法从您的问题中判断。

您是否尝试过为其编写函数?您可以编写这样的函数(在
.vimrc
.vim/ftplugin
中):
函数SomeName()。。做事。。结束函数(带换行符)并映射函数
map r call SomeName
。是否尝试为其编写函数?您可以编写这样的函数(在
.vimrc
.vim/ftplugin
中):
函数SomeName()。。做事。。结束函数(带换行符)并映射函数
map r call SomeName