vim:没有插件的常见替换库?

vim:没有插件的常见替换库?

我希望:'<,'>s/^\ \ \ \ //以缩写形式执行类似的事情,例如:'<,'>s_lw(无论实际上是什么s_lw)使用vim基本功能,最初尝试不依赖于扩展,例如CommandAlias :为 vim 命令创建别名

是否可以?

答案1

您可以使用命令行模式缩写为了那个原因:

:cnoreab s_lw s/^\ \ \ \ //

缩写相对于映射 ( ) 的优势:cnoremap在于,您仍然可以键入它(例如在搜索中),而不会无意中扩展它。

答案2

您给出的例子可能可以用来完成<

无论如何,您可以使用自定义命令:

" remove 4 leading spaces on the current line or a range
command! -range=% SLW execute <line1> . ',' . <line2> . 's/^ \{4}//'

" usage 1:
    foo
:SLW<CR>
foo

" usage 2:
    foo
    bar
vj
:'<,'>SLW<CR>
foo
bar

" usage 3:
    foo
    bar
:,+SLW<CR>
foo
bar

视觉模式映射:

xnoremap ,slw :s/^ \{4}//<CR>

或命令行模式映射:

cnoremap slw s/^ \{4}//

或者像 Ingo 的答案中的命令行模式缩写。

相关内容