关于vim:插入字符而不进入插入模式?

Insert character without entering insert mode?

有时我想插入#来注释掉一行并快速测试。 目前我这样做:

iESCw

我能做些什么吗?


虽然我同意其他人认为有更好的方法来评论和取消注释代码,但似乎人们已经分心并忘记实际回答这个问题。

这是我插入单个字符的方法:

1
:noremap <key> i <Esc>r

如果我正在纠正拼写错误,我倾向于发现我需要经常替换,删除或添加单个字符,所以(分别)rx,以及上面为选择的任何内容都变成了非常便利。

请注意,.对于此类任务也特别方便。它重复了之前的行动。

就个人而言,当我正在执行一项任务时,我只将这个功能映射到一个有价值的键,我经常使用它来证明占用键盘上的一个主要位置(例如纠正错别字),因为实际上,它只能节省一次击键使用,仅当不是组合时,这当然限制了可用性。


我将一些东西映射到我的键(默认情况下为\):

1
2
3
4
5
" # comment the current line
nnoremap <leader>d I#<ESC>

" block comment in visual mode

vnoremap <leader>c <ESC>'<O/*<ESC>'>o*/<ESC>V'<k

如果要将#添加到一组行的开头,请执行以下操作:

  • j(根据需要多次
  • <5233>

  • 在vim中映射非常容易,我可能会做类似的事情

    1
    :nmap CC I#<Esc>:w<CR>

    在飞行中。如果我习惯它,那么我会将它添加到我的vimrc文件中。

    1
    2
    :help key-mapping
    :help usr_40.txt

    你可以使用录音。从正常模式,键入:

    1
    qlml0i#[cc lang="vim"]`lq

    然后注释掉一行,只需按@l即可


    我特别喜欢tComment插件。 gcc评论一行,重复取消注释,多行,动作等。


    实际上有一个你可能想看的插件:

    http://www.vim.org/scripts/script.php?script_id=1218

    它专门为此目的而设计。