Ris*_*cha 183 python vim editor
我想知道Vim中是否有任何键映射允许我缩进某些代码行(是否在可视模式下选择了这些行,或者当前光标位置上方/下方的n行).
所以基本上可以转换以下内容
def my_fun(x, y):
    return x + y
至
#def my_fun(x, y):
#    return x + y
我可以使用任何一个#或"""用于评论相关的行.理想情况下,如果给定的行已被注释掉,我也希望使用相同的键映射来取消注释行.
the*_*osp 402
第1步:转到要评论的第一行的第一列.

第2步:按:Ctrl+ v并选择要评论的行:

步骤3: Shift - I#space(进入左侧插入模式,键入要插入的字符.选择将消失,但其中的所有行将在步骤4之后被修改.)

第4步: Esc

gho*_*g74 68
单向手动
:set number
:10,12s/^/#
cda*_*ted 47
您可以将以下映射添加到.vimrc
vnoremap <silent> # :s/^/#/<cr>:noh<cr>
vnoremap <silent> -# :s/^#//<cr>:noh<cr>
突出显示您的区块:
Shift+v
# 从第一列评论您的行.
-# 以相同的方式取消注释.
小智 25
突出显示您的区块: ShiftV
用以下内容注释所选块:( :norm i#小写i)
要取消注释,请再次突出显示您的块,并取消注释: :norm ^x
该:norm命令为每个选定的行执行操作.注释将#在每行的开头插入一个,取消注释将删除该行#.
小智 22
我通常扫出一个可视块(<C-V>),然后搜索并替换第一个字符:
:'<,'>s/^/#
(进入命令模式并选择一个可视块自动在命令行上放置'<,'>)然后我可以通过清除相同的视觉块取消注释该块,并且:
:'<,'>s/^#//
我的帖子中有以下几行.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
NERDcommenter是一个出色的评论插件,可以自动检测多种文件类型及其相关的注释字符.使用Pathogen可以轻松安装.
评论<leader>cc.取消注释<leader>cu.并用以下方式切换评论<leader>c<space>.
(<leader>vim中的默认键是\)
vim 有很多评论插件 - 其中一些是多语言的 - 不仅仅是 python。如果您使用像Vundle这样的插件管理器,那么您可以使用以下命令搜索它们(一旦安装了 Vundle):
:PluginSearch comment
您将得到一个结果窗口。或者,您可以只在 vim-scripts 中搜索评论插件。
正如其他答案中提到的,NERDCommenter是一个很好的答案 - 有关使用它的更多信息,请参阅此答案。注意:密钥<leader>通常是\. 例如,要注释掉一行 - 输入:\cc
无需插件或映射。试试内置的“norm”命令,它可以在每个选定的行上执行你想要的任何内容。
添加#条评论
1. shift V to visually select lines
2. :norm i#
删除 # 条评论
1. visually select region as before
2. :norm x
或者,如果您的评论是缩进的,您可以这样做 :norm ^x
请注意,这些只是普通的 vim 命令,前面带有 ":norm" 以在每一行执行它们。
在此处的答案之一中使用“norm”命令的更详细答案