不进入插入模式如何插入字符?

20
有时我想插入一个 # 来注释一行代码并快速测试它。目前的方法是:

i#ESC:w

有没有更短的方式可以实现?

2
有许多注释脚本可供选择。我使用commentary.vim:https://github.com/tpope/vim-commentary - Peter Rincker
2
正如其他人所说,您可能想尝试一下评论插件。更普遍地说,如果您需要经常或重复执行简单操作,您可以轻松创建映射或宏。 - Pandu
在2021年使用neovim 0.5时,我会在readme文件中创建一些小的待办事项,并且我经常在markdown中使用- [ ],我想添加一个x来表示我已完成该项。所以我使用了以下命令:使用r进入替换字符模式,然后键入x以填充空字符(如果您愿意)。看起来效果不错。 - ipatch
6个回答

9
尽管我同意其他人认为有更好的代码注释和取消注释方法,但似乎人们已经分心并忘记了实际回答问题。
这是我插入单个字符的方法:
:noremap <key> i <Esc>r

我经常发现,如果要更正打字错误,我需要经常替换、删除或添加单个字符,因此(分别)rx和上述所选的<key>变得非常方便。
请注意,. 对于这种任务也特别方便。它重复了先前的操作。
个人而言,只有在执行频率足够高以证明占用键盘主要位置是合理的任务时(例如更正打字错误),才将此功能映射到有价值的按键上,因为实际上,每次使用仅节省一个按键,而且只有当<key>不是组合键时才有效,这当然会限制可用性。

也许只是节省了一个按键的操作,但在Vim中,它也能减少模式切换所带来的心理负担,这在使用中会感受到明显的改善。 - Adam Tolley
这个映射在使用 .无法正常工作 - Sparhawk

3

我将一些功能映射到我的<leader>键上(默认为\):

" # comment the current line
nnoremap <leader>d I#<ESC>

" block comment in visual mode
vnoremap <leader>c <ESC>'<O/*<ESC>'>o*/<ESC>V'<k

如果你想在一组行的开头添加#,请按照以下步骤操作:

  1. <ctl-v>
  2. j(如果需要多次执行)
  3. I#
  4. <esc>

2
您可以使用录制功能。在正常模式下,输入以下命令:
qlml0i#<press escape>`lq

然后要注释掉一行,只需按下@l

2
在vim中进行映射非常容易,我可以像这样做:
:nmap CC I#<Esc>:w<CR>

即时生效。如果我习惯了,那么我会将其添加到我的vimrc文件中。

:help key-mapping
:help usr_40.txt

0

0

我特别喜欢tComment插件。它可以使用gcc来注释一行,重复使用则取消注释,支持多行、动作等功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接