vim 怎么成对删除"",[],'',()等符号?
vim已经实现自动补全(),{},"",''等功能,补全的同时,光标在中间,现在我想实现,当打错了的时候怎么成对的删除(),"",''。意思就是当我打出(|),"|"指光标,现在我想delete 一下将整个括号删除。
vim 怎么成对删除"",[],'',()等符号?
vim已经实现自动补全(),{},"",''等功能,补全的同时,光标在中间,现在我想实现,当打错了的时候怎么成对的删除(),"",''。意思就是当我打出(|),"|"指光标,现在我想delete 一下将整个括号删除。
在 Vim 编辑器中,可以通过多种方法来实现成对删除括号、引号等符号。以下是一些建议的方法:
di(
、di[
、di"
、di'
等命令Vim 提供了删除内部文本(delete inside)的命令,可以删除光标所在位置的成对符号及其中的内容。但如果你只想删除成对的符号(而不删除它们之间的内容),你可以使用这些命令然后撤销(undo)操作来只删除符号。
不过,Vim 也提供了专门的命令来直接删除成对的符号,例如:
di(
:删除光标所在的 (
和与之匹配的 )
之间的内容(包括这两个括号)。如果你只想删除括号,你可以先按 di(
然后撤销(通常是 u
)。di[
:类似地,删除 [
和 ]
。di"
:删除 "
内的内容,包括两个双引号。di'
:删除 '
内的内容,包括两个单引号。只删除符号而不删除内容:
di(
(或相应的括号/引号键)。u
来撤销这个操作,只保留括号/引号的删除。di<
或 da<
配合自定义映射你可以为常用的括号/引号创建自定义的映射(mappings),以便更容易地删除它们。例如,你可以将 di(
映射到一个更简单的键组合,如 <F2>
。但请注意,Vim 没有内置的直接删除成对符号而不删除内容的命令,所以你可能需要结合上述的撤销操作。
有些 Vim 插件可能已经提供了这样的功能。例如,surround.vim
是一个流行的插件,它提供了用于操作(添加、删除、更改)包围文本(如括号、引号等)的命令。使用 Surround
插件,你可以通过 ds
命令来删除包围的符号。
对于经常需要执行的任务,你可以录制一个宏来自动完成。例如,你可以录制一个宏来执行 di(
和 u
的操作,然后分配给一个键。
如果你想为删除双引号 "
创建一个映射,可以在你的 ~/.vimrc
文件中添加以下行:
nnoremap <F2> "di\"<CR>u"
这个映射会在普通模式下将 <F2>
键绑定到删除光标所在的双引号及其内容的操作,并立即撤销以只删除双引号。注意 <CR>
代表回车键,用于执行 di\"
命令。但请注意,这种方法仍然依赖于撤销操作来达到只删除符号的效果。
c + a + '你要删除的符号'
或者
d + a + '你要删除的符号'