我想在 vi 中实现以下目标:
对于上述要求,我有以下命令
:%s/new page //g删除前两列。
:g/abc/d, :g/xyz/d,:g/ddd/d删除以特定单词开头的行。
:%s/ .*//g删除第一个单词之后的所有内容。
总的来说,我想运行以下命令:
:%s/new page //g
:g/abc/d
:g/xyz/d
:g/ddd/d
:%s/ .*//g
如何在一个命令中执行所有上述命令。
我已经尝试过|,但没有成功。
:g/abc/d|:g/xyz/d|:g/ddd/d
我收到以下错误:
E147: Cannot do :global recursive
我怎样才能做到这一点。我想在一个命令中执行所有命令。
谢谢
您可以将所有这些命令放在一个函数中:
function! AllMyCommands()
%s/new page //g
g/abc/d
g/xyz/d
g/ddd/d
%s/ .*//g
endfunction
Run Code Online (Sandbox Code Playgroud)
并直接调用它:
:call AllMyCommands()
Run Code Online (Sandbox Code Playgroud)
或通过自定义命令:
command! Foo call AllMyCommands()
:Foo
Run Code Online (Sandbox Code Playgroud)
或通过自定义映射:
nnoremap <key> :<C-u>call AllMyCommands()<CR>
<key>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3057 次 |
| 最近记录: |