emacs和vi如何多行注释

Vim、Emacs配置和使用
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#16

帖子 BigSnake.NET » 2007-11-25 16:05

vim

Ctrl-V 选中 , I , 输入 # , ESC
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
zhangsong023
帖子: 768
注册时间: 2006-09-20 19:56

#17

帖子 zhangsong023 » 2007-11-25 19:35

还是给出来吧,方便不会lisp语言的新手。

代码: 全选

;; 没有任中任何区域时,注释、反注释作用于当前行,否则作用于
;; 选中区域
(defadvice comment-or-uncomment-region (before slickcomment activate compile)
  "When called interactively with no active region, toggle comment on current line instead."
  (interactive
   (if mark-active (list (region-beginning) (region-end))
     (list (line-beginning-position) 
           (line-beginning-position 2)))))
(define-key c-mode-base-map (kbd "C-c C-c") 'comment-or-uncomment-region)
最后一句可以根据需要修改,例如,如果你要在python模式中使用,就这用:

代码: 全选

(define-key python-mode-map (kbd "C-c C-c") 'comment-or-uncomment-region)
之后,使用C-c C-c一个快捷键就基本上可以搞定日常需要的注释、反注释操作了。

不建议使用global-set-key,很多时候会被覆盖。
头像
Strange
帖子: 1824
注册时间: 2006-05-19 9:54
来自: Shanghai

#18

帖子 Strange » 2007-11-26 9:20

vim都没人提到这个插件

EnhancedCommentify

估计这个帖子里大家都不太用vim的...
头像
alinmn
帖子: 185
注册时间: 2006-05-19 21:42
来自: NIT

#19

帖子 alinmn » 2007-12-16 1:57

写了几个映射,可以实现/* */格式的注释和反注释。当被注释文本含有/* */格式的注释时,会自动将其替换为/ * * /。反注释会将/ * * /替换为/* */。Normal模式下<F2>cm,<F2>uc注释或反注释当前行,Visual模式下注释或反注释块所在的若干行。

代码: 全选

	"Uncomment
	:nnoremap <F2>uc :.s+\(// *\\|/\* *\\| *\*/\)++g<CR>:silent! .s+\(/\@<= \*\@=\\|\*\@<= /\@=\)++g<CR>:noh<CR>
	"Comment
	:nnoremap <F2>cm :.s/^\(.*\)$/\/* \1 *\//<CR>:silent! .s+\(./\)\@<=\*\@=\\|\*\@<=\(/.\)\@=+ +g<CR>:noh<CR>
	"Visual comment
	:vnoremap <F2>cm :<ESC>'<O<Home>/*<ESC>'>o<Home>*/<ESC>:silent!'<,'>s+/\@<=\*\@=\\|\*\@<=/\@=+ +g<CR>:noh<CR>
	"Visual uncomment
	:vnoremap <F2>uc :s+\(/\*\\|\*/\)++<CR>:silent! '<,'>s+\(/\@<= \*\@=\\|\*\@<= /\@=\)++g<CR>:noh<CR>
wkingfly
帖子: 13
注册时间: 2009-03-13 22:09

Re: emacs和vi如何多行注释

#20

帖子 wkingfly » 2011-04-27 11:46

4楼正解,thanks ! 我用的vim
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re:

#21

帖子 lilydjwg » 2011-04-27 15:48

Strange 写了:vim都没人提到这个插件

EnhancedCommentify
+1
Strange 写了: 估计这个帖子里大家都不太用vim的...
LZ 说的是 vi 不是 vim 啊。。。
kideagle
帖子: 24
注册时间: 2011-05-07 14:30

Re: emacs和vi如何多行注释

#22

帖子 kideagle » 2011-05-09 11:05

俺是新手, 不过我想等学好正则表达式了这些问题应该都不难吧~~ :em05
kideagle
帖子: 24
注册时间: 2011-05-07 14:30

Re:

#23

帖子 kideagle » 2011-05-09 11:30

lk_517 写了:
karron 写了:vim

ctrl+v 进入列模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如#,再按esc,就会全部注释了.
为什么我的vim里面ctrl+v没有任何反映?
不用Crtl吧, 直接就按v 试下
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: emacs和vi如何多行注释

#24

帖子 lilydjwg » 2011-05-09 12:47

kideagle 写了:俺是新手, 不过我想等学好正则表达式了这些问题应该都不难吧~~ :em05
这个不关正则的事的 :em02
reallynotme
帖子: 157
注册时间: 2010-11-11 18:13
系统: Ubuntu

Re:

#25

帖子 reallynotme » 2011-05-10 19:17

lk_517 写了:
karron 写了:vim

ctrl+v 进入列模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如#,再按esc,就会全部注释了.
为什么我的vim里面ctrl+v没有任何反映?
用的windows下的吧,把_vimrc里的source $VIMRUNTIME/mswin.vim注释掉或直接删掉
moranlin
帖子: 50
注册时间: 2006-12-19 20:05

Re: Re:

#26

帖子 moranlin » 2011-05-12 18:38

kideagle 写了:
lk_517 写了:
karron 写了:vim

ctrl+v 进入列模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如#,再按esc,就会全部注释了.
为什么我的vim里面ctrl+v没有任何反映?
不用Crtl吧, 直接就按v 试下
v 是可视模式
Ctrl + v 是列模式


顺便请教一下:如何去掉多行注释?
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: Re:

#27

帖子 lilydjwg » 2011-05-12 19:35

moranlin 写了: 顺便请教一下:如何去掉多行注释?

Ctrl-V 选中,按 d 或者 x 删除。
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

Re: emacs和vi如何多行注释

#28

帖子 fanhe » 2011-05-12 21:38

NERD_commenter
这个插件解决所有注释的烦恼
seeingok
帖子: 6
注册时间: 2011-07-01 19:40

Re:

#29

帖子 seeingok » 2011-09-01 0:21

netmeteor 写了:emacs中,选中一个region,M-;就可以注释或者反注释
测试了一下15楼所说的方法,完全有效!
confirmed.
头像
Fermat618
帖子: 728
注册时间: 2008-12-28 16:01

Re: emacs和vi如何多行注释

#30

帖子 Fermat618 » 2011-09-01 10:14

vim就上插件吧,一下就能找到好多个类似的插件。

Emacs的话不少mode都会提供这个功能,看下菜单里面一般会有的,再没有就看看文档。
爱因斯坦会弹钢琴
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
回复