Vi:Visual Interface 可视化界面

Vim:Visual Interface Improved Vi的增强版

Vi编辑器是一个模式化的编辑器,而且功能异常强大,体积短小精悍。

我们通常使用Vim,一则是Vi的增强版

Vim的使用格式

Vim [options] [/path/to/somefile]          这里的路径可以省略,等文件内容写完之后再来保存路径,犹如windows中的先打开记事本然后再去保存路径一样

Vim 有三种模式类型编辑模式输入模式末行模式

编辑模式:是Vim的默认模式,又叫做命令模式;但是编辑模式不是输入文件的模式,例如:删除,复制。

输入模式:又叫做插入模式;再此模式下输入的内容都会当做文本内容来使用的。

末行模式:也就意味着在整个屏幕的最下方,在里面可以键入命令,也就是说在编辑模式下所实现的功能在此均可使用,并且还能执行一些编辑模式下无法实现的特性和功能。比如:查找替换等等;后面我们会一一给出。

模式转换:

 编辑模式  —> 输入模式:

i insert, 实现在当前光标所在处字符前面转换为输入模式;
a append, 实现在当前光标所在处字符后面转换为输入模式;
o 实现在当前光标所在行的下方新建一个空白行并转换为输入模式;
I 实现在当前光标所在行的行首转为输入模式;
A 实现在当前光标所在行的行尾转为输入模式;
O 实现在当前光标所在行的上方新建一行,并转为输入模式;

输入模式 –> 编辑模式:

             按一下Esc键;

编辑模式 –> 末行模式:

             输入冒号

末行模式 –> 编辑模式:

             按一下Esc键,再按一下Esc键;

输入模式 –> 末行模式

             无法直接实现,只能先转换为编辑模式,然后再转换至末行模式 ;

光标跳转:

字符间跳转:

h,向左箭头

向左移动

l,向右箭头

向右移动

j,向下箭头

向下移动

k,向上箭头

向上移动

字符间多字符跳转:

#h

向左侧跳#个字符

#l

向右侧跳转#个字符

#k

向上面跳#个字符

#j

向下面跳转#个字符

单词间跳转:

w

快速跳转至后一个单词的词首

e

快速跳至当前或下一个单词词尾

b

快速跳至当前或前一个单词词首

句子间跳转:

)

跳转至下一句

(

跳转至前一句

段落间跳转:

}

跳转至下一段

{

跳转至前一段

 行间跳转:

1G, gg

跳转至这个文件的第一行;

G

跳转至这个文件的最后一行;

#G

跳转至这个文件的第n行;

行内跳转:

^

行首的第一个非空白字符

$

绝对行尾

0(零)

绝对行首

关闭文件:

在末行模式下:

w 保存
q 退出
! 强制
wq 保存并退出
w! 强制保存
q! 强制退出
x 保存退出

在编辑模式下:

ZZ

保存退出

wall

保存所有文本

qall

退出所有文本

打开文件:

      vim [options] /path/to/file                    Vim 选项 文件名

      vim +# /path/to/file                           打开文件让光标快速定位在#行行首

打开多个文件:三种方式:

       方式一: Vim 文件名 文件名 文件名 …

 多文件间跳转:

输入 (在末行模式下):


next

切换到下一个;

last

切换到最后一个;

first

切换到第一个;

prev

切换到前一个;

       方式二:Vim –o 文件名 文件名 …:水平分割窗口打开文件

                  跳转方式:首先按住ctrl 再按w 松开按上下箭头实现切换

       方式三:Vim –O 文件名 文件名 …:垂直分割窗口打开文件

                 跳转方式:首先按住ctrl 再按w 松开按左右箭头实现切换

多文件退出方式:

q

退出当前光标所在文件

qall

退出所有

编辑文本命令:

 删除命令:

      方式一:

x:

删除光标所在处的单个字符

#x:

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

      方式二:

d

删除命令

dw

删除单词至下个单词词首

db

删除单词至前一个单词词首(不会删除光标所在处的字符)

d

删除单词

d)

删除本句和下一句

d(

删除本句和上一句

d^

光标所在处到行首(不包含光标所在处的字符)

d$

光标所在处到行尾(包含光标所在处的字符)

dd

删除光标所在行;

#dd

删除光标所在行及向下#行

在末行模式下使用d命令

        末行模式支持范围指定,支持地址定界,也就是可以明确说明从第几行到第几行

          格式: 起始地址,结束地址
                1,7就表示从第一行到第七行
                1,7d就表示从第一行删除到第七行
                $:最后一行
                1,$:从第一行到最后一行
                1,$d:从第一行删除到最后一行

在地址定界时还支持相对表达法

                1,+6:从第一行开始向下走六行
               1,$-2: 从第一行到倒数第三行
               .:当前光标所在行
               .,+3:表示从当前光标所在行向下走3行
               .,+3d:删除光标所在处向下三行,也就是删除4行
               %:全文
               %d:删除全文


  编辑操作可撤销:(在未保存之前)

u 撤销
Ctrl+r 撤销此前的撤销:(重做上一次操作)

        Vim默认会保留最近50次的操作,u命令可逐一撤销此前的编辑操作;

这个u与Ctrl+r是很常用的命令,一个是复原,一个是重做;牢记


我们所做的操作不仅可以撤销还可以保存在缓存里面,并且最后一次的编辑操作(尤其是删除操作)还可以被保存在文件当中的。

 粘贴操作:

      P:

             可以实现一次复制多次粘贴的操作

             如果删除的是整行:
                p:在当前光标所在行的下方粘贴(小写p)
                P:在当前光标所在行的上方粘贴(大写P)
          如果删除的不是整行:
              p:在当前光标所在行字符的后方粘贴(小写p)
              P: 在当前光标所在处字符的前方粘贴(大写P

复制操作

       y:

       yy 复制光标所在的那一行
       #yy 复制光标所在处向下#行
       y$ 复制光标到行尾
       y^ 复制光标到行首

       如果复制的是整行:
           p:在当前光标所在行的下方粘贴(小写p)
           P:在当前光标所在行的上方粘贴(大写P)

       如果复制的不是整行:
           p:在当前光标所在行字符的后方粘贴(小写p)
           P: 在当前光标所在处字符的前方粘贴(大写P)

   查找一个大文件时常用的操作:

    翻屏操作:

Ctrl+f

向文件尾部翻一屏

ctrl+b 向文件首部翻一屏
ctrl+d 向文件尾部翻半屏
ctrl+u 向文件首部翻半屏

   文本搜索:

/keyword

从当前光标所在处向文件尾部查找

?keyword 从当前光标所在处向文件首部查找
n: 下一个,跟查找命令相同的方向
N: 前一个,跟查找命令相反的方向

文件搜索查找支持模式:(模式:正则表达式所构成的匹配标准)也就是说支持正则表达式匹配。

例如:字母d中间有两个字母后跟n的单词 /\<d[[:alpha:]]\{2\}n\>


另外一个编辑命令:

c:

      编辑,转换至输入模式

cc 可以删除本行内容并且转换为输入模式
c$ 删除本行内容到行尾并转换为输入模式
#cc 删除#行内容并转换为输入模式
c^ 删除至行首的第一个非空白字符处并转换为输入模式
c0 删除至行首并转换为输入模式

Vim 有可视化模式

visual模式

v:

选中光标划过的字符,字符选取

V: 选中光标划过的行,整行选取
Esc 按Esc即可以返回到编辑模式

例如:删除/复制部分文件:首先用V(v)选中,然后按d/y即可实现删除

     删除部分内容并转换为编辑模式:首先用V(v)选中,然后按c即可实现删除


一个文件分屏显示:

    水平分割:Ctrl+w,s 按着ctrl+w松开按住s即可实现水平分割
    垂直分割:Ctrl+w,v 按着ctrl+w松开按住v即可实现水平分割
    翻转屏幕:ctrl+w 箭头按着ctrl+w松开按住箭头即可实现屏幕翻转


窗口属性定义:(这些定义只对当前vim有效)

显示行号 在末行模式下:输入 setnmberset nu(简写)
关闭显示 ~ setnonumberset nonu(简写)
自动缩进 ~ set autoindentset ai(简写)
关闭自动缩进 ~ set noai
不区分字符大小写 ~ set ignorecaseset ic
关闭不区分字符大小写 ~ set noic
获取帮助: ~ set
显示匹配的括号 ~ set showmatchset sm
关闭显示匹配的括号 ~ set nosm
关闭语法着色(默认是开启的) ~ syntax off
开启语法着色 ~ syntax on
开启搜索结果高亮显示 ~ set hlsearch
关闭搜索结果高亮显示 ~ set nohlsearch

以上设置更改之后等下次再打开还会按原来的设置显示,要想修改编辑配置文件

Vim的配置文件

全局:/etc/vimrc   只有管理员才有权限修改配置

修改之后对所有用户都有效

个人:~/.vimrc(这个文件实际不存在,自己创建即可)

修改之后只对当前用户自己有效对其他用户无效




下有附件Vimtutor中文版,根据内容学习查看练习一遍,对vim的功能操作基本便会应用。