码迷,mamicode.com
首页 > 系统相关 > 详细

Vim 使用总结

时间:2015-09-08 07:13:18      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:blank   编辑器   target   软件   style   

简介:

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是纯粹的自由软件

三种模式

一般模式:

vim打开一个文件就进入一般模式。

尾部显示

技术分享

该模式可移动光标,删除字符或行,可复制或黏贴文件数据。

编辑模式

    键入以下键进入编辑模式

             i: insert,插入
            a:append,
            o:new line,
             I: 行首
            A:行尾
            O:上方新建行

尾部显示

技术分享

命令行模式,又名末行模式

            ::进入命令行模式。注一个:

技术分享

vim的操作

光标的移动

字符间跳转

        hjkl->左下上右,方向键同样可以

单词间跳转:
            w:后单词的词首
            e:当前或后一个单词的词尾;
            b:当前或前一单词的词首;

            #COMMAND:

        行内跳转:
            ^: 跳转至行首的第一个非空白字符;
            0:跳转至行首;
            $: 跳转至行尾;

        行间移动:
            #G:
            1G, gg
            G

        句间移动:
            )
            (

        段落间移动:
            }
            {

编辑操作

字符编辑命令:

X : 大X为向前删除一个字符,相当于Backspace

x : 小写x向后删除一个字符,相当于del

#x:删除光标所在处向后#个字符

xp:将光标所在处的字符和后边一个字符位置对调

删除命令:

d:

d^ 删除光标所在处到行首的所有字符

d$ 删除光标所在处到行尾的所有字符

d0 删除光标所在处到行首的所有字符

dG:删除光标所在至最后一行的所有字符

d1G:删除光标所在到第一行的所有字符

dd: 删除光标所在行

#COMMAND

注意:删除内容会被vim编辑器保存至缓冲区当中

粘贴命令:p (paste, put)

如果此前复制或者删除的内容不是完整的行:

p 小写:粘贴至当前光标所在处的后面

P 大写:粘贴至当前光标所在处的前面

如果复制的内容是完整行(可以不止一行)

p小写:粘贴之当前光标所在行下方

P大写:粘贴至当前光标所在行上方

复制命令: y, yank

y:

yy: 复制光标所在的那一行

#yy:复制光标所在的向下#行

y1G:复制光标所在行到第一行所有字符

yG:复制光标所在行到最后一行所有字符

y$:复制光标所在字符至行尾的所有字符

y^,:复制光标所在字符至行首的所有字符

改变命令:c, change 兼具文件编辑和模式转换

c$,c^,c0,cb,

ce,ce,cw

cc: 删除光标所在行,进入插入模式

撤销此前的编辑工作

u: undo

撤销此前的编辑操作

#u

Ctrl+r 恢复此前的撤销工作

.:重复起一个编辑操作

翻屏操作

Ctrl+f: 屏幕向下翻一页

Ctrl+b: 屏幕向上翻一页

Ctrl+d:屏幕向下移动半页

Ctrl+u:屏幕向上移动半页

末行模式:

(1)地址,定界

:start_pos,end_pos

#: 第#行

#,#:从#行到#行

#,+#:从#行到第#+#行

.:当前行

$:组后一行

%: 全文,相当于1,$

/pat1/: 第一次被此模式所匹配到的行;

#,/pat1/:从第#开始,第一次被此模式所匹配到的行

/pat1/,/pat2/:第一次被此模式所匹配到的行 到 第二次被匹配到的行

后边可跟编辑命令:

   y,w,r

(2)查找

/PATTERN: 向尾部进行搜索

?PATTERN: 向首部进行搜索

n: 与命令同方向

N: 与命令反方向

(3)查找替换

s:在末行模式下,在地制定界的范围内完成查找替换操作

s/要查找的内容/替换为的内容/修饰符

要查找的内容:可使用模式

替换为的内容:不能使用模式,但可以使用后向引用符号,以引用前面模式中的分组括号所匹配到的内容;

\1, \2, ...

&:引用"要找的内容"匹配到的整个内容;

修饰符:

i: 忽略大小写

g: 全局替换

c:提示给用户确认是否需要替换

/:用于分隔符,所以,要查找的内容或替换为的内容中出现此符号,要使用\对其转义,使用格式:\/

分隔符可替换为其它字符:例如@,#等;

多文件模式:

vim FILE1 FILE2 ...

:n 编辑下一个文件

:N 编辑上一个文件

:files 列出目前这个vim打开的所有文件

:next 编辑下一个文件

:first 编辑第一个文件

:prev 编辑上一个文件

:last 编辑最后一个文件

:wqall 保存并退出所有打开文件

:q!all  强制退出所有打开文件

多文件窗口分割:

vim -o|-O FILE1 FILE2 ...

技术分享

Ctrl+w, ARROW(箭头) 切换窗口

单文件窗口分割:

Ctrl+w, s: split, 水平分割

Ctrl+w, v: vertical, 垂直分割

技术分享

定制vim的某些工作特性:

(1) 行号

显示:set nu

禁用:set nonu

(2) 括号匹配

显示:set sm

禁用:set nosm

(3) 自动缩进:

set ai

set noai

(4) 高亮搜索

set hlsearch

set nohlsearch

(5) 语法着色

syntax on

syntax off

(6) 忽略字符大小写

set ic

set noic

练习:

1、复用查找替换命令删除文件中的行首的空白字符;

%s/^[[:space:]]//g

技术分享技术分享

2、用查找替换命令为文件每行开头为空白字符的行的行首加一个#; 原有空白字符保留;

%s/^\s\+/#&/g

技术分享技术分享

3、替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;

 %s#/etc/sysconfig/init#/var/log#g

技术分享

技术分享

 

4、删除/tmp/functions文件中所以#开头,且#后面至少跟了一个空白字符的行的行首#

%s/^\(#\)\(\s\+\)/\2/g

技术分享

技术分享

Vim 使用总结

标签:blank   编辑器   target   软件   style   

原文地址:http://thinnercheng.blog.51cto.com/906539/1692495

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!