您的位置:首页 > 运维架构 > Linux

关于vim的一些使用以及Dos文件到Linux、Mac下问题

2013-11-04 08:58 826 查看
Linux编写程序用的比较广泛的还是vim,下面对其快捷操作做一总结。

1、将光标移动到文件的开始位置或结束位置:

gg  将光标移动到文件的开始位置。
G  将光标移动到文件的最后一行。
对当前行做标记,例如ma,即标记当前行为a行,mb,即标记当前行为b行,mc,即...等等,要回到a行使用'a。要回到b行使用'b。
gd vim中快速定位到当前光标所在变量或函数处:


1.2 vim中进行C和C++源码对齐操作:

gg+=+G   //先gg跳转到文件开始位置,再输入=,再输入G,vim将自动进行C和C++源 码的对齐操作。


1.3 vim中删除字符,并进入插入模式,修改为想要的字符串:

/char    cw   使用/char,找到字符char,然后cw,就删除了,然后修改为想要的字符串。
然后n,进入下一个字符,然后"."就可以重复上面的操作。
cnw     是删除n个字符,并进入插入模式。


将所有的data替换为bash,方法为: (首先用ESC进入命令行模式)

/data                   找到data
cw                       删除data,并进入插入模式。
bash                    输入bash
n                          找到下一个bash


重复上面的操作,这样就可以完成将所有的data替换为bash。

1.4 vim中进行变量名,函数名和字符串补全操作:

在linux下编写c语言程序,命名规范要求变量名,函数名是用“_”将单词分隔开的。 比如:int value_name = 5; 采用这种方法的好处在于vim进行匹配时,比较方便,在vim中使用ctrl+n或ctrl+p进行匹配,当输入value_使用ctrl+n或者ctrl+p能够将后面的部分自动匹配。

2、vim中“上 下 左 右”移动光标:

h      将光标向左移动。
l       将光标向右移动。
j       将光标向下移动。
k      将光标向上移动。


3、vim复制:

复制字符串:ctrl+v配合“上下左右”键,选中字符串,使用y进行复制。
复制n个单词:y+number+w
复制一行:yy
复制n行:nyy


4、vim粘贴:

在vim中使用p 或 P进行粘贴。


5、vim删除:

字符及字符串的删除:

删除一个字符,使用x。
删除多个字符,使用ctrl+v进入可视模式,然后移动键盘上的“上下左右”键,将要删除的字符串选中,然后使用d就删除了。


行及多行,块的删除:

删除一行,使用dd;
删除n行,使用ndd;
删除不知道多少行,首先使用ctrl+v进入可视模式,然后移动键盘上的“上下左右”键,将要删除的行选中,然后使用d就删除了。


6、vim撤销:

vim中的撤销有两种,一种是向左撤销,一种是向右撤销:比如我们刚删除了一行,想恢复,使用u就可以,恢复后又想删除,使用ctrl+r就可以。

7、vim查找:

查找第几行,在命令行中输入:number+enter就可以将光标移动到指定的行。

查找某个字符串,在命令行中输入:/string,光标就移动到第一个出现string的行,当输入n,光标将移动到下一处出现string的行,再输入n,将继续向下找,当找到最后一个string所出现的行,再输出n时,就回到第一次出现string的行。(/string查找指定字符串,n从开始向结束,即向下。N从结束向开始,即向上)当在命令行输入:/string时,光标将移动到最后一个出现string的行,当输入N,光标将移动到最后一次出现string的行,继续输入N,将继续向上一次出现string的行移动。

8、vim进入头文件,从头文件中返回:

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


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

在vim中使用%可以匹配另外一半符号出现的位置。

void fun(int argc,char *argv){

//代码

}

当我们将光标放在第一个大括号哪里,想找到另外一个与之匹配的大括号时,使用%。就可以了。

Vim打开有些文件时候,会出现文件末尾会出现^M,这是为何?
查阅资料知道是如下的原因:

vim被配置为fileformat=unix,而你打开的文件都是dos格式的。

unix格式的换行符为0A(ascii码)也就是<LF>,

dos格式的换行符为 0D 0A(也就是<CR><LF>),<CR>其实就显示为^M。

DOS, Mac 和Unix格式的文件。

回想计算机的history,那时的打字机使用两个字符来开始一个新行。

首先是一个字符命令使打印头移回开始位置(回车,<CR>),然后另一个字符命令控制向前进纸一行(进纸,<LF>)。

在计算机诞生之初,存储设备十分昂贵。于是有人就提出没有必要用两个字符来表示一行的结束。UNIX一族决定只用进纸一个字符LF(<LineFeed>)来表示行尾。

苹果阵营的人则把回车<CR>作为换行的标准。

MS-DOS(和微软的Windows)仍然决定沿用古老的回车换行<CR><LF>传统。

这也意味着如果把文件从一个系统移到另一个不同的系统,你就会遇到与换行相关的问题。

Vim编辑器则可以识别这些不同格式的文件。

你可以在'fileformats'选项里指定你希望Vim能自动识别的格式的集合。

文本中既有unix的换行符,又有dos的换行符,那么vim会认为你打开的是unix的,所以,那些dos的换行符就会出现恼人的^M。

如何去除^M?

途径1:打开/etc/vimrc文件,添加如下的语句,一般都可以搞定。

set fileformats=unix,dos

途径2:打开dos格式文件,进入命令行格式。这里需要注意的是,输入^M时候,需要用 Ctrl + V Ctrl + M 来输入。用下面的命令来实现去除用 ^M。

:%s/^M$//g
途径3:.回车,会自动删除该文件中的所有 ^M 字符。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: