因此,基本上需要转换以下内容:
def my_fun(x, y):
return x + y
to#def my_fun(x, y):
# return x + y
我可以使用#
或"""
来注释相关行,同样地,如果给定的行已被注释,我也希望使用相同的按键映射取消注释。
def my_fun(x, y):
return x + y
to#def my_fun(x, y):
# return x + y
我可以使用#
或"""
来注释相关行,同样地,如果给定的行已被注释,我也希望使用相同的按键映射取消注释。
步骤1: 跳转到您要评论的第一行的第一列。
步骤2: 按下:Ctrl+v,选择您要注释的行:
步骤3: Shift-I
#空格键(进入左侧插入模式,输入要插入的字符。选定的内容将消失,但所有其内部的行将在步骤4之后被修改。)
步骤4: Esc
Shift-I # <ESC>
不起作用了(可能是我做错了)。 - Rishabh Manocha手动的一种方式
:set number
:10,12s/^/#
:10,12s/^#//
- bstpierre您可以将以下映射添加到您的 .vimrc 文件中:
vnoremap <silent> # :s/^/#/<cr>:noh<cr>
vnoremap <silent> -# :s/^#//<cr>:noh<cr>
使用以下代码突出显示您的区块:
Shift+v
#
用于注释第一列中的代码。
-#
以同样的方式取消注释。
使用快捷键 ShiftV 高亮您的代码块。
使用命令:norm i#
(小写字母 "i")将选定的块注释掉。
要取消注释,需要再次选择代码块,并使用命令:norm ^x
取消注释。
:norm
命令为每个选定的行执行一个操作。注释将在每行开头插入一个 #
,而取消注释将删除该 #
。
Shift+v
),然后使用:norm i#
只会更改第一个选定的行。这对我来说很有效,可以将389到391行注释掉::389,391norm i #
- mmell我通常会选中一个视觉块 (<C-V>
),然后用搜索和替换功能将第一个字符替换为:
:'<,'>s/^/#
当选定一个可视块并进入命令模式时,会自动在命令行上放置 '<,'>。然后我可以通过扫出相同的可视块来取消注释该块:
:'<,'>s/^#//
有一些好的插件可以帮助注释或取消注释行。例如The NERD Commenter。
The NERD Commenter 的示例快捷键:
[count]|<Leader>|cc |NERDCommenterComment|
Comment out the current line or text selected in visual mode.
[count]|<Leader>|cu |NERDCommenterUncomment|
Uncomments the selected line(s).
完整的文档位于此处。
1. shift V to visually select lines
2. :norm i#
删除 # 注释
1. visually select region as before
2. :norm x
:norm ^x
命令。请注意,这些只是普通的vim命令,前面加上“:norm”指令来对每一行执行它们。更详细的回答在这里的一些答案中使用“norm”命令。参考:What's a quick way to comment/uncomment lines in Vim?。我在我的.vimrc
文件中有以下几行代码:
" comment line, selection with Ctrl-N,Ctrl-N
au BufEnter *.py nnoremap <C-N><C-N> mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>`n
au BufEnter *.py inoremap <C-N><C-N> <C-O>mn<C-O>:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR><C-O>:noh<CR><C-O>`n
au BufEnter *.py vnoremap <C-N><C-N> mn:s/^\(\s*\)#*\(.*\)/\1#\2/ge<CR>:noh<CR>gv`n
" uncomment line, selection with Ctrl-N,N
au BufEnter *.py nnoremap <C-N>n mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>:s/^#$//ge<CR>:noh<CR>`n
au BufEnter *.py inoremap <C-N>n <C-O>mn<C-O>:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR><C-O>:s/^#$//ge<CR><C-O>:noh<CR><C-O>`n
au BufEnter *.py vnoremap <C-N>n mn:s/^\(\s*\)#\([^ ]\)/\1\2/ge<CR>gv:s/#\n/\r/ge<CR>:noh<CR>gv`n
这些快捷方式会保留您的光标位置和评论,只要评论以 #
开头(#后面有一个空格)。例如:
# variable x
x = 0
评论后:
# variable x
#x = 0
取消注释后:
# variable x
x = 0
s/^/#/
正则表达式。我更喜欢注释字符出现在行的开头...但更重要的是,“注释注释”真的非常重要。我还会删除au BufEnter *.py
,因为#
注释足够通用,可以默认在所有缓冲区中使用命令。 - travcNERDcommenter 是一个出色的评论插件,它自动检测多种文件类型及其相关的注释字符。使用 Pathogen 安装非常简单。
使用 <leader>cc
进行注释。使用 <leader>cu
取消注释。使用 <leader>c<space>
切换注释。
(在 vim 中,默认的 <leader>
键是 \
)
有很多适用于vim的评论插件,其中许多都是多语言的,不仅仅是python。如果您使用像 Vundle 这样的插件管理器,则可以通过以下方式搜索它们(一旦安装了Vundle):
:PluginSearch comment
你会得到一个结果窗口。或者你可以直接在vim-scripts中搜索评论插件。
如其他答案所述,NERDCommenter 是一个不错的插件 - 想了解更多使用信息,请参见此答案。注意:常用的<leader>
键是\。例如,要注释一行,请输入:\cc