免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4702 | 回复: 8
打印 上一主题 下一主题

[文本处理] vim的使用技巧 [复制链接]

论坛徽章:
2
金牛座
日期:2014-05-24 15:42:55亥猪
日期:2014-08-12 15:00:33
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-05-24 16:42 |只看该作者 |倒序浏览
本帖最后由 月光xia漫步 于 2014-05-24 16:44 编辑

看了很多关于vim的使用技巧的帖子,自己也做了一些笔记,感觉如果对于vim的理解加深的话,可以提高平常的工作效率,所以,贴出自己汇总的vim的使用技巧,希望对大家有所帮助。

ymm注:如果希望查看原帖的话,下面都有链接。如下:


vim 技巧
1、vim中快速定位到当前光标所在变量或函数处:
gd

2、vim中进行变量名,函数名和字符串补全操作:
在linux下编写c语言程序,命名规范要求变量名,函数名是用“_”将单词分隔开的。
比如:
int    value_name = 5;
采用这种方法的好处在于vim进行匹配时,比较方便。

在vim中使用ctrl+n    或  ctrl+p进行匹配。
当输入value_使用ctrl+n或者ctrl+p能够将后面的部分自动匹配。

3、vim进入头文件,从头文件中返回:
进入头文件:
将光标移动到指定的头文件中,在命令行中键入gf就进入指定的头文件中。
返回原文件:
当对头文件编辑结束后,键入ctrl+^就返回到原文件中。

4、查看与当前符号匹配的另外一半符号   // "" 或者''或者()或者[ ]或者{}等匹配出现的符号。

在vim中使用%可以匹配另外一半符号出现的位置。
void  fun(int argc,char *argv)
{
//代码
}
当我们将光标放在第一个大括号哪里,想找到另外一个与之匹配的大括号时,使用%【Shift+5】。就可以了。

扩展阅读: http://wdqfirst.blog.163.com/blog/static/1133474112012101221027321/


1、在函数中查找man手册
K:光标定位在函数名字上,按下K,则自动跳转到man手册里,
退出后仍然回到函数中


2、看历史记录
q/  :在命令模式输入q/,vim会列出搜索的记录
q:  :在命令模式输入q:,vim会列出冒号模式中操作的记录

扩展阅读: http://wenku.baidu.com/link?url= ... grLGy6caEl8LjdRuE5e            


1、标示位置

你可以在档案中做些标记再随时返回被标记的位置.

m char (MARK) 把这个地方标示成 char
' char (quote character) 跳到被标为 char的那一行
'' (按两次') 回到刚才的位置

char 可以是小写的 a-z中的任一个 . 一个标记在除了下面的这两种情况外会一直存在

1) 重覆使用相同的标示 char .
2) 删掉了被标示的那一行.


2、文字段落

有时候一段一段的移动游标会比较方便.我们可以用 {,},(,) 来达到这些功能

{   (左大括号) 跳到上一段的开头
}   (右大括号) 跳到下一段的的开头.
   
(   (左小括号) 移到这个句子的开头
)   (右小括号) 移到下一个句子的开头
   
[[  跳往上一个函式
]]  跳往下一个函式

扩展阅读: http://blog.csdn.net/bigshady/article/details/6019963

1、命令行输出内容输入到文件中
:r !command

将command的输出插入到当前位置。


2、打开文件的时候,对比两个文件
vim -d file1 file2 直接打开两个文件对比

3、在编辑文件的时候,也可以编译了
:copen          #将结果输出的窗口打开
:make           #编译
双击错误跳转到错误出现地方
ymm注:双击不能跳转到错误出现的地方,但是通过“Enter”回车键可以达到跳转到错误的位置
ymm注:结果输出窗口和编辑窗口切换的方式是 Ctrl+w

4、光标移动
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行  

5、屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏

6、光标移动
^ 行的第一个非空白字符
+ 下一行的开头
- 上一行的开头
(空格) 下一个字符
(回车) 下一行

7、代码排版
在符号{或者符号}上按=% 对当前{}之内的代码进行排版!

ymm注:和使用visual选择代码然后使用“=”排版代码方式一样。
扩展阅读: http://bbs.csdn.net/topics/350219702

1、全文反转
把文件内容反转
:g/^/m0

m-->move
0-->line No 1
试想,从第1行开始,每一行依次放在文件的开头处,会有什么结果???

2、为字符串重命名
由于vi 是建立在 EX 上的 所以 当键入 : 时就来到了 EX 命令状态
:ab string strings
例如 :ab usa United States of America ,
当你在文见里插入 usa 时
United States of America 就蹦出来了

:map keys new_seq
定义你当前 键盘命令
----------------------------ab命令解释----------------------------
ab命令:
ab命令可以将一长串字符用缩写来定义,这有点象Linux中的alias,比如Linux中的ll命令就是ls -l的别名,ab的语法为:

:ab abbr phrase
abbr就是对phrase的简写,在insert 模式中,输入abbr,再按非字母字符(比如空格,点号等)Vim就自动把phrase插入到光标处位置。此情景一般用在频繁输入的字符中,通常建议abbr选择使用频率很低的字符,比如Eclipse常用的一个快捷键syso,你可以定义成如下:

:ab syso  public static void main(String[] args)
这样一来,每次输入syso的时候,整个main方法就自动插入到文本行了。如果你就是想输入'syso'这个原生字符串,那么您可以用下面这个命令取消:

:unab syso
列出当前定义的缩写有哪些可以用命令:

:ab
扩展阅读: http://liuzhijun.iteye.com/blog/1833814
----------------------------ab命令解释----------------------------

3、行首行尾替换
要在文本前加同样的字符用
%s/^/要加的内容/g
ymm注:即把行首换成要加的内容  
   
要在文本后加同样的字符用
%s/$/要加的内容/g  
ymm注:即把行尾换成要加的内容

4、删去全文
%表示全文
:%d
是删除全文


5、使用tags打开函数定义处
用vi进行coding时的使用技巧:
用ctags命令对当前目录下的c源程序扫描,生成tags文件
$ ctags *.c
这样,在vi里通过命令
:ta fun_name
就可以直接打开函数fun_name所在的文件,并将光标置于函数开头

6、指定行重定向到另一文件夹
:n,n1 w 文件名
把从n行到n1行写道另外一个文件中
n和n1都是行数

7、全字匹配
查找:
在一个单词上用*,就向下查找此单词,#是向上

8、
替换:
如有一文件,内容为:
aa
bb
cc
dd
用:
%s/.*/printf(\"& is :%d\\n\",&);/g
文件内容为变为:
printf("aa is :%d\n",aa);
printf("bb is :%d\n",bb);
printf("cc is :%d\n",cc);
printf("dd is :%d\n",dd);

ymm注:上述实则是一个替换,不过牵扯到了一些正则表达式
ymm注:"&" 表示为查找匹配到的内容。在使用UE的替换的时候,如果选择正则表达式UltraEdit的话,也可以使用"^1" "^2" 表示查找的第一个、第二个匹配的字符串.

9、显示文件信息
Ctrl+g:显示"文件名" line 34(光标位置) of 970(总行数) --3%--(比例)

10、设置是否显示不可见字符
:set list/:set nolist:显示/隐藏不可见字符;

ymm注:使用cat -A的时候,同样可以查看不可见字符
[billing_dx@bmcs1 b]$ cat -A main.cpp |head -n 4
#include <iostream>^M$
#include <stdlib.h>^M$
#include "plcafuns.h"^M$
#include "Log.h"^M$

扩展阅读: http://bbs.chinaunix.net/forum.p ... mp;fromuid=28621203

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2014-05-24 21:36 |只看该作者
感谢分享

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
3 [报告]
发表于 2014-05-25 13:06 |只看该作者
学习!感谢分享!

论坛徽章:
3
酉鸡
日期:2014-04-23 17:17:56丑牛
日期:2014-05-08 11:41:302015亚冠之德黑兰石油
日期:2015-08-03 11:14:27
4 [报告]
发表于 2014-05-25 19:27 |只看该作者
不错,多谢分享

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
5 [报告]
发表于 2014-05-25 23:50 |只看该作者
感谢分享~{:2_172:}

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
6 [报告]
发表于 2014-05-26 09:53 |只看该作者
从扩展阅读的不同链接来看,楼主是下了功夫收集了很多资料啊,感谢分享~

论坛徽章:
2
金牛座
日期:2014-05-24 15:42:55亥猪
日期:2014-08-12 15:00:33
7 [报告]
发表于 2014-05-26 10:26 |只看该作者
回复 6# seesea2517


    在看帖子的时候,发现每个人都有自己的vim的使用技巧,虽然都是一些很有用的信息,但是,因为比较分散,所以无论找起来还是学起来都不方便,所以,我把收集的信息放到这儿。正所谓取之于大家,用之于大家嘛!

论坛徽章:
8
戌狗
日期:2013-10-12 11:37:19双子座
日期:2014-05-06 14:40:39巨蟹座
日期:2014-06-14 09:22:18戌狗
日期:2014-09-18 16:05:44巨蟹座
日期:2014-12-27 16:37:26酉鸡
日期:2015-01-20 18:39:022015年亚洲杯之沙特阿拉伯
日期:2015-04-20 22:38:242015亚冠之萨济拖拉机
日期:2015-06-19 16:01:03
8 [报告]
发表于 2014-05-26 16:21 |只看该作者
谢谢分享

论坛徽章:
0
9 [报告]
发表于 2015-07-31 17:43 |只看该作者
相当有用,终于找到了进入头文件的快捷键lollol
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP