使用 vim 映射命令

使用 vim 映射命令

我怎样才能在 vim 中映射执行如下操作的命令:

:command(我在这里写并按回车键)(使用我写的内容执行另一个命令)

或者

:badd my_buffer_name
:b my_buffer_name

我想用“\ff”映射它,它应该像这样工作:\ff my_buffer_name。我该如何映射这样的命令?

答案1

假设您希望映射执行其中一个缓冲区命令,请使用以下命令:

:map \ff :badd 

确保在“:badd”后添加一个空格字符。请参阅

:help 05.3
:help map.txt

如果您的意思是您的映射应该执行这两个命令,那么请使用以下命令:

:command -nargs=1 BuffAdd badd <args> <bar> b <args>
:map \ff :BufFAdd 

再次,在映射中的“:BufAdd”后面包含一个空格。请参阅

:help 40.2
:help user-commands

对于更复杂的任务或参数处理,你可以编写一个函数。请参阅

:help 41.7
:help user-functions

包含使用 input() 函数的函数可以允许您键入\ff后跟缓冲区名称,而无需:BufAdd在命令行上看到,如下所示:

function MyFunc()
    let my_buffer_name = input("Buffer name: ")
    exe 'badd' my_buffer_name
    exe 'b' my_buffer_name
endfunction
map \ff :call MyFunc()<CR>

相关内容