在vim里定义快捷键来注释C程序
- i_NIX
- 帖子: 450
- 注册时间: 2008-02-11 15:46
在vim里定义快捷键来注释C程序
我平常用C语言,喜欢用 /*...*/ 来注释程序。
转载注明:
http://hi.baidu.com/zhuhongxu/blog/item ... 3ab86.html
如果你编辑的是C程序,在gedit里可以用快捷键 Ctrl+M 实现(需要先在选项里开启),取消注释就是Ctrl+Shift+M。
而且gedit支持多行注释,只要你用鼠标选中先要注释的行,然后用快捷键搞定即可。
那如果在vim里该怎么办呢?
我们使用自定义快捷键来完成,在Normal模式下,= 和 - 这两个符号都没有什么作用,我们就可以用它们来作为注释快捷键。想想,只用一个按键就可以完成一行的注释,很爽吧!
编辑主目录下的 .vimrc 文件,加入这两句(不要直接拷贝,看下注意)
map = I/*^[A*/^[j
map - ^xx$xx
注意:上面这两句里的 ^[ 不是两个字符,而是一个字符,它代表ESC键。如何输入呢?按住Ctrl不放,然后按一下V,然后按一下ESC键即可。当然,亦可以先按Ctrl+V,松开,然后按Ctrl+ESC。
如图:
然后保存退出。
以后你编辑C程序是就可以在Normal模式下,用 = 和 - 来注释和取消注释。
这两个 map 命令都比较简单,解释一下就是:
map = I/*^[A*/^[j
定义快捷键 = ,快捷键的含义是:I 回到行首同时进入Insert模式,输入 /* 两个字符,然后用 ESC回到Normal模式, A 到达行尾并进入Insert模式,然后加入 */ 两个字符,又回到Normal模式,j 到下一行(如果你不想到下一行就可以不要这个 j )。
map - ^xx$xx
就是到达行首,x删除一个字符(两个x就是删除两个),然后 $ 到行尾,在删除两个字符。
有了这两个自定义的快捷键,以后在程序中,就可以用 = 号注释,在按 = 号就注释下一行了。可以一直按 = 号,就一直注释下去。对于注释个3、5行就是小Case了。马上取消注释可以用 u , - 号是用来取消注释其它地方的注释的。
想取消某一行的注释就在该行上按 - 号即可。如果你想取消注释后能到下一行去编辑或继续取消注释,就将上面的一二个命令改成(加个j):
map - ^xx$xxj
我想道理都明白了吧。
当然,如果你喜欢C++类型的 // 注释或其它什么类型的,就自己改命令吧,很简单哦。
总体来说呢,这两个自定义的快捷键还很粗糙,还有改进的余地。
转载注明:
http://hi.baidu.com/zhuhongxu/blog/item ... 3ab86.html
如果你编辑的是C程序,在gedit里可以用快捷键 Ctrl+M 实现(需要先在选项里开启),取消注释就是Ctrl+Shift+M。
而且gedit支持多行注释,只要你用鼠标选中先要注释的行,然后用快捷键搞定即可。
那如果在vim里该怎么办呢?
我们使用自定义快捷键来完成,在Normal模式下,= 和 - 这两个符号都没有什么作用,我们就可以用它们来作为注释快捷键。想想,只用一个按键就可以完成一行的注释,很爽吧!
编辑主目录下的 .vimrc 文件,加入这两句(不要直接拷贝,看下注意)
map = I/*^[A*/^[j
map - ^xx$xx
注意:上面这两句里的 ^[ 不是两个字符,而是一个字符,它代表ESC键。如何输入呢?按住Ctrl不放,然后按一下V,然后按一下ESC键即可。当然,亦可以先按Ctrl+V,松开,然后按Ctrl+ESC。
如图:
然后保存退出。
以后你编辑C程序是就可以在Normal模式下,用 = 和 - 来注释和取消注释。
这两个 map 命令都比较简单,解释一下就是:
map = I/*^[A*/^[j
定义快捷键 = ,快捷键的含义是:I 回到行首同时进入Insert模式,输入 /* 两个字符,然后用 ESC回到Normal模式, A 到达行尾并进入Insert模式,然后加入 */ 两个字符,又回到Normal模式,j 到下一行(如果你不想到下一行就可以不要这个 j )。
map - ^xx$xx
就是到达行首,x删除一个字符(两个x就是删除两个),然后 $ 到行尾,在删除两个字符。
有了这两个自定义的快捷键,以后在程序中,就可以用 = 号注释,在按 = 号就注释下一行了。可以一直按 = 号,就一直注释下去。对于注释个3、5行就是小Case了。马上取消注释可以用 u , - 号是用来取消注释其它地方的注释的。
想取消某一行的注释就在该行上按 - 号即可。如果你想取消注释后能到下一行去编辑或继续取消注释,就将上面的一二个命令改成(加个j):
map - ^xx$xxj
我想道理都明白了吧。
当然,如果你喜欢C++类型的 // 注释或其它什么类型的,就自己改命令吧,很简单哦。
总体来说呢,这两个自定义的快捷键还很粗糙,还有改进的余地。
Google Talk群组,请来<雨云>一番!
主题:Ubuntu、Linux、编程、科幻、民主、科学等。
添加 [email protected] 为好友(然后say hi,并等待验证)
参见 http://goo.gl/xIpxH
Twitter:http://twitter.com/nixzhu
主题:Ubuntu、Linux、编程、科幻、民主、科学等。
添加 [email protected] 为好友(然后say hi,并等待验证)
参见 http://goo.gl/xIpxH
Twitter:http://twitter.com/nixzhu
- i_NIX
- 帖子: 450
- 注册时间: 2008-02-11 15:46
Re: 在vim里定义快捷键来注释C程序
粘贴过来就看不到图的,原文链接
http://hi.baidu.com/zhuhongxu/blog/item ... 3ab86.html
http://hi.baidu.com/zhuhongxu/blog/item ... 3ab86.html
Google Talk群组,请来<雨云>一番!
主题:Ubuntu、Linux、编程、科幻、民主、科学等。
添加 [email protected] 为好友(然后say hi,并等待验证)
参见 http://goo.gl/xIpxH
Twitter:http://twitter.com/nixzhu
主题:Ubuntu、Linux、编程、科幻、民主、科学等。
添加 [email protected] 为好友(然后say hi,并等待验证)
参见 http://goo.gl/xIpxH
Twitter:http://twitter.com/nixzhu
- Strange
- 帖子: 1824
- 注册时间: 2006-05-19 9:54
- 来自: Shanghai
-
- 帖子: 1831
- 注册时间: 2009-04-03 15:10
Re: 在vim里定义快捷键来注释C程序
你这么做不是还得把手从主键位上拿开,移到等号那边去?
太没效率了……
我是直接绑定在fff按键上,还有njn按键上,前者用于单行注释,后者用于盒装注释……
太没效率了……
我是直接绑定在fff按键上,还有njn按键上,前者用于单行注释,后者用于盒装注释……
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
-
- 帖子: 1831
- 注册时间: 2009-04-03 15:10
Re: 在vim里定义快捷键来注释C程序
你那太麻烦……我右手还得滑开主键位去按shift和冒号……对了,还得先切换回normal模式……对吧!而且退一万步……以上按键至少要两只手都参与按键至少一次才能够达到目的……我绑定的那个只需要一只手的一个或者两个指头就可以了……hia……hia……xhy 写了:,cc
,cs
,cm
,cu
以下是我的绑定:
代码: 全选
imap fdf <ESC>
imap fff <ESC>1$a<TAB>/* */<ESC>hhi
imap njn <ESC>O/*<CR>
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
Re: 在vim里定义快捷键来注释C程序
注释方便,取消注释也要方便,
,cu就能取消注释了
//xxx
/*
xxxx
xxx
*/
/*
*
*
*/
常见的注释风格,也要支持。
使用插件,可以做到同样的操作支持各种语言语法,
nerd可以注释或者取消注释,python,c,java,php,bash,js等等语言
,cu就能取消注释了
//xxx
/*
xxxx
xxx
*/
/*
*
*
*/
常见的注释风格,也要支持。
使用插件,可以做到同样的操作支持各种语言语法,
nerd可以注释或者取消注释,python,c,java,php,bash,js等等语言
目前负债150多万
-
- 帖子: 1831
- 注册时间: 2009-04-03 15:10
Re: 在vim里定义快捷键来注释C程序
某只用c语言……一般都是写代码的时候考虑注释问题,看代码从来不注释……xhy 写了:注释方便,取消注释也要方便,
,cu就能取消注释了
//xxx
/*
xxxx
xxx
*/
/*
*
*
*/
常见的注释风格,也要支持。
使用插件,可以做到同样的操作支持各种语言语法,
nerd可以注释或者取消注释,python,c,java,php,bash,js等等语言
另外对于vim的脚本完全不太会……说实话对一切脚本类语言深恶痛绝之……
私下有打算开发一种接近或者等同于c语言的脚本语言,最好能够通用与所有linux下软件,无奈暂无时间……亦暂无此能力……
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
- Strange
- 帖子: 1824
- 注册时间: 2006-05-19 9:54
- 来自: Shanghai
Re: 在vim里定义快捷键来注释C程序
insert mode 下绑定主键位是很不明智的行为dshbusiness 写了:你那太麻烦……我右手还得滑开主键位去按shift和冒号……对了,还得先切换回normal模式……对吧!而且退一万步……以上按键至少要两只手都参与按键至少一次才能够达到目的……我绑定的那个只需要一只手的一个或者两个指头就可以了……hia……hia……xhy 写了:,cc
,cs
,cm
,cu
以下是我的绑定:代码: 全选
imap fdf <ESC> imap fff <ESC>1$a<TAB>/* */<ESC>hhi imap njn <ESC>O/*<CR>
比如在insert mode下按f键,屏幕上并不会立刻出现f,而是继续等待下一个字符,知道超时,或下一个不匹配任何键绑定的键被按下。
按下键屏幕上不出来就够不舒服的了,不要说万一真的要输入 "fff' 三个字母的时候了。
ニンニク入れますか?
x60 with gentoo
x60 with gentoo
-
- 帖子: 1831
- 注册时间: 2009-04-03 15:10
Re: 在vim里定义快捷键来注释C程序
那应该用几种?xhy 写了:工作中只用一种语言几乎是不现实的
学了c以后某看c++都是低效和无聊的……目前只有汇编能够引起我的兴趣……

-
- 帖子: 1831
- 注册时间: 2009-04-03 15:10
Re: 在vim里定义快捷键来注释C程序
这个根据个人情况而言……是很明智的……效率直线上升……Strange 写了:insert mode 下绑定主键位是很不明智的行为dshbusiness 写了:你那太麻烦……我右手还得滑开主键位去按shift和冒号……对了,还得先切换回normal模式……对吧!而且退一万步……以上按键至少要两只手都参与按键至少一次才能够达到目的……我绑定的那个只需要一只手的一个或者两个指头就可以了……hia……hia……xhy 写了:,cc
,cs
,cm
,cu
以下是我的绑定:代码: 全选
imap fdf <ESC> imap fff <ESC>1$a<TAB>/* */<ESC>hhi imap njn <ESC>O/*<CR>
比如在insert mode下按f键,屏幕上并不会立刻出现f,而是继续等待下一个字符,知道超时,或下一个不匹配任何键绑定的键被按下。
按下键屏幕上不出来就够不舒服的了,不要说万一真的要输入 "fff' 三个字母的时候了。
某输中文不存在这个问题,输英文遇到f我会特别不注意一下屏幕上是否有输出,因为如果下一个字母不是d或者f的话,两个字母就同时迸出来了……
另外……目前没有遇到连续三个f的情况……除了在写类似int fd之类的代码的时候会出现两个字母都是绑定了的字母……
不过随着目前写的代码的复杂度增高,fd之类的简单变量名早已不再使用,取而代之的是复杂变量名……
例如init_module_file之类的
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
Re: 在vim里定义快捷键来注释C程序
至少要会3-5种,dshbusiness 写了:那应该用几种?xhy 写了:工作中只用一种语言几乎是不现实的
学了c以后某看c++都是低效和无聊的……目前只有汇编能够引起我的兴趣……
大部分时候,效率是次要的,
比如说写个程序从www.weather.com.cn上抓天气预报下来,
用任何语言都是可以的,效率也不会相差太大,因为瓶颈在网络,
用脚本可以在10分钟内做到的事情,用C可能要1个小时,效果却差不多,
这个时候有人选择用C语言吗?
所以现在手机和嵌入式都开始用Java了,
google的android官方sdk就是java only.
目前负债150多万
-
- 帖子: 1831
- 注册时间: 2009-04-03 15:10
Re: 在vim里定义快捷键来注释C程序
呃……但是脚本真的学起来很恶心……根学vb差不多……xhy 写了:至少要会3-5种,dshbusiness 写了:那应该用几种?xhy 写了:工作中只用一种语言几乎是不现实的
学了c以后某看c++都是低效和无聊的……目前只有汇编能够引起我的兴趣……
大部分时候,效率是次要的,
比如说写个程序从www.weather.com.cn上抓天气预报下来,
用任何语言都是可以的,效率也不会相差太大,因为瓶颈在网络,
用脚本可以在10分钟内做到的事情,用C可能要1个小时,效果却差不多,
这个时候有人选择用C语言吗?
所以现在手机和嵌入式都开始用Java了,
google的android官方sdk就是java only.
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
Re: 在vim里定义快捷键来注释C程序
主流脚本语言有10多种,旁支就更多了,不说函数式编程语言,dshbusiness 写了:呃……但是脚本真的学起来很恶心……根学vb差不多……xhy 写了:至少要会3-5种,dshbusiness 写了:那应该用几种?xhy 写了:工作中只用一种语言几乎是不现实的
学了c以后某看c++都是低效和无聊的……目前只有汇编能够引起我的兴趣……
大部分时候,效率是次要的,
比如说写个程序从www.weather.com.cn上抓天气预报下来,
用任何语言都是可以的,效率也不会相差太大,因为瓶颈在网络,
用脚本可以在10分钟内做到的事情,用C可能要1个小时,效果却差不多,
这个时候有人选择用C语言吗?
所以现在手机和嵌入式都开始用Java了,
google的android官方sdk就是java only.
就python/perl/php/js跟vb也是天壤之别,完全不是一个样子。
目前负债150多万