Vim的分屏技巧的使用 vi vim常用命令

vi-vim常用命令

Vim的分屏技巧的使用

  1. 1

    vim水平分屏的使用 :vim -on file1 file2 ...其中:

    o(是小写字母o,不是数字零)n(表示你要分屏的文件个数)

    filen(文件名多个文件用空格分开)

    Vim的分屏技巧的使用 vi vim常用命令_第1张图片

    Vim的分屏技巧的使用 vi vim常用命令_第2张图片

  2. 2

    我用两个文件做测试想到上面那个文件用:ctrl + w + k

    想到下面的文件用:ctrl + w + j

    当然你懒的话可以用:ctrl + w + w

    最后要说明的是在单个文件可以进行的操作都可以在分屏文件里面进行操作

    Vim的分屏技巧的使用 vi vim常用命令_第3张图片

  3. 3

    在水平分屏好的文件中在打开别的文件:sp filename

  4. 4

    vim垂直分屏:vim -On file1 file2 .....

    其中:

    O(是大写字母O,不是数字零)n(表示你要分屏的文件个数)    

    filen(文件名多个文件用空格分开)

    Vim的分屏技巧的使用 vi vim常用命令_第4张图片

  5. 5

    想到左面那个文件用:ctrl + w + h

    想到右面的文件用:ctrl + w + l

    最后要说明的是在单个文件可以进行的操作都可以在分屏文件里面进行操作

    Vim的分屏技巧的使用 vi vim常用命令_第5张图片

  6. 6

    在垂直分屏好的文件中在打开别的文件:vsp filename

    Vim的分屏技巧的使用 vi vim常用命令_第6张图片

    Vim的分屏技巧的使用 vi vim常用命令_第7张图片

  7. 7

    最后Vim是一个神级别的编辑器,主要把工作最常用到并且可以提高开发速度的快捷键牢记就行了,祝大家好运!



1 简介


在UNIX系统中,创建和修改配置文件、shell脚本、初始化文件、编写程序都离不开VI。


1      vi[1]属于两个主要的UNIX规范:POSIX和单一UNIX规范。


2      vi编辑器由Bill Joy于1976年创建。


3      vi是一种面向屏幕的编辑器。


4      vi来源于另一个编辑器ex。


5      vim是vi的增强版。


2 使用帮助


学习vi,学会使用联机手册或帮助命令是非常重要的。Unix有两个最重要的文档资料系统:Unix手册和Info(GNU项目的官方文档资料系统)。


常用命令:


1      man vi     


2      vi --help


3      info vi


对于较长的说明页,可使用分页程序分页显示。常用的分页程序有:less、more、pg。例如:man cp | less


查找说明书页的其它方法(基于web):


1      使用google搜索:(一定要确保包含双引号)


○    “man vi ”


○    “man pages” vi


   2 另外一种基于web的说明书页的方法是xman,xman是一个基于GUI的程序,它充当说明书页浏览器。在命令行启动xman:xman&。


Vi的帮助命令::help


3 模式和命令


3.1 输入模式和命令模式


命令模式[2](command mode):所键入的键都被解释成命令。


输入模式(input mode):键入的任何内容都直接插入到编辑缓冲区中。


当离开输入模式时,使用Esc键切换到命令模式。


了解所处模式的方法:


       :set showmode


3.2 vi和ex命令


vi和ex是同一个程序的两种不同的表现形式。也就是说可以同时使用vi和ex命令。


vi:


①大多数vi命令都是单字母或双字母的表现形式。


②vi键入时命令不回显。


ex:


①ex命令比vi命令长。


②所有的ex命令都以一个:(冒号)开头。键入:后,vi就将光标移动到命令行上(屏幕最底部)。


③ex命令的每个字符都将回显。


④ex命令结束,必须按下<Return>键盘。


4 启动与编辑vi-vim


4.1编辑一个文件


语法:vi 【-rR】 【file……】


常用命令:


1      vi file                 启动vi,编辑指定的文件


2      vi -R file             以只读模式启动vi


3      view file              以只读模式启动vi (vi -R file等同于view file)


4      vim file                   启动vim,编辑指定的文件


5      vim -C      file          以兼容模式启动vi


4.2编辑多个文件


语法:vi a.txt b.txt c.txt


切换文件: :next


4.3 编辑技巧


编辑技巧:


1      vi +[num] file          打开文件,并将光标置于第n行首


2      vi + file                   打开文件,并将光标置于最后一行首


3      vi +/pattern file       打开文件,并将光标置于第一个与pattern匹配的字符串


4      vi +?pattern file       编辑工作从匹配pattern的最后一行开始


5      vi -r file                 (-r 即recover,恢复)


4.4 写入文件


常用命令:


1      :w                      将数据写入到原始文件


2      :w file                     将数据写入到指定文件


3      :w >> file                将数据追加到指定文件


4      :r [filename]            在编辑的数据中,读取另一个档案的数据,亦将档案内容加到游标所在行的后面


5      :n1,n2 w [filename]      将n1到n2的内容存储成另一个档案。


4.5 退出文件、停止vi


常用命令:


1      :q             退出文件


2      :q!            不保存数据,强制退出


3      :wq           保存退出文件


4      shift+ZZ    停止vi


5      ZQ            无条件退出


4.6 vi与vim命令行常用选项


-b                     以二进制模式编辑文件


-c command      启动后立即运行给定的ex命令


-d                     以diff模式运行


-o[num]            启动vim时打开num个窗口


-O[num]            启动vim时打开num个水平排列


-r                      恢复模式


-R                     于只读模式中编辑文件


-t tag                编辑包含tag的文件,并将光标置于tag位置


-T type              设置可选终端类型


5 插入


输入模式:


操作键


说明


i


 在当前光标位置前插入数据


a


 在当前光标位置后插入数据


I


 在当前行开头处插入数据


A


 在当前行末尾处插入数据


o


 在当前行下面出入一行


O


 在当前行上面插入一行


 


6 移动和跳转


6.1获取光标当前位置


获取方式:^G


6.2 缓冲区移动


 


操作键


说明


^F


 向下移动一屏


^B


 向上移动一屏


n^F


 向下移动n屏


n^B


 向上移动n屏


^D


 向下移动半屏


^U


 向上移动半屏


n^D


 向下移动n行


n^U


 向上移动n行


^E


 向屏幕顶端多滚动一行


^L


 向屏幕底端多滚动一行


zENTER


 将光标所在的行移动到屏幕顶端


z.


将光标所在的行移动到屏幕中间


z-


将光标所在的行移动到屏幕底端


 


6.3 光标移动


操作键


说明


h       <Left>


 将光标向左移动一个位置


j     <Down>


 将光标向下移动一个位置


k         <Up>


 将光标向上移动一个位置


l       <Right>


 将光标向右移动一个位置


-


 将光标移动到上一行的开头


+     <Return>


 将光标移动到下一行的开头


^


 将光标移动到当前行的第一个非空格/制表符的字符上


数字0


 将光标移动到当前行的开始


$


 将光标移动到当前行的末尾


w W


 将光标移动到下一个单词的词首(大写字母,略过空格)


e E


 将光标移动到下一个单词的词尾(大写字母,略过空格)


b B


 将光标移动到上一个单词的词首(大写字母,略过空格)



 向前移动到下一个句子



 向后移动到上一个句子


{


 向前移动到下一个段落


}


 向后移动到上一个段落


H


 将光标移动到屏幕顶部


M


 将光标移动到屏幕中间


L


 将光标移动到屏幕的最后一行


fcharacter


 单字符搜索移动(f为搜索命令,character为要搜索的字符)


Fcharacter


 单字符左方向搜索移动


%


 已匹配一个括号为目的的移动


 


说明:


1.命令计数:在移动命令前加数字,如3j,可实现向下移动三行。


   语法:ncommand   (n为数字,command为移动命令)


2. 规律:一个命令的大写字母形式会做同样的事情,但是方向相反。


6.4 行号跳转


显示行号:     :set number


关闭行号:     :set nonumber


命令


说明


nG 、   :n


 跳转到第n行


1G 、 gg  、 :1


 跳转到编辑缓冲区的第一行


G   、  :$


 跳转到编辑缓冲区最后一行


 


附加:


另一个移动到某行的办法是:在命令 % 前加一个命令计数,如 50% 会把光标定位在文件中间。


6.5 跳转到前一位置


返回前一位置:


a)      ``(两个反引号)


b)      ‘’(两个单引号)


6.6 使用名称标示任意行,进行跳转


           用不可见的名称标识任意行,当需要时使用此名称跳转到这一行。


       可以键入m标示这一行,后跟一个字母,这个字母就是这一行的名称。例如:用”b“标示这一行,可以键入mb。为了跳转到这一行,可以键入一个反引号或单引号,后面跟这一行的名称。如:`b 或 ’b


7 搜索


7.1搜索常用命令


向前搜索: /


向后搜索: ?


常用命令:


1      /           向前重复搜索


2      ?             向后重复搜索


3      /regex       向前搜索指定的正则表达式


4      ?regex     向后搜索指定的正则表达式


5      n              重复上一条/或?命令,搜索方向相同


6      N              重复上一条/或?命令,搜索方向相反


附: 


      命令历史记录:用上下箭头来查找用过的搜索


7.2查找字符串便捷方式


*命令 : 将光标定位于字符串,按下*键,vi将会取当前光标所在的字符串并将它作用目标字符串进行搜索。


#命令: 与*相反。


%:搜索与当前花括号、圆括号、方括号成对的符号。


7.3 查找整个字符串


方法:


使用\<  \>进行匹配。


例子:/\<word\>


 


8 文本改动


8.1替换之vi命令


r:精确替换一个字符(不进入输入模式)。


R:替换多个字符(以覆盖方式替换)。(先将光标移动到希望开始替换的位置,然后输入R。切换到输入模式,随后键入的每个字符都将替换当前行上的一个字符。)


s:允许使用多个字符替换一个单个的字符(以插入方式替换)。


C:允许替换从当前光标位置到本行末尾的所有字符。


S 或 cc:以插入方式替换当前整行。


cmove:以插入方式从当前光标处替换到move所给出的位置处。


8.2替换之ex命令_常用方法


ex命令:


语法::s/pattern/replace/   其中,pattern是替换的模式,replace是替换的文本。


使用方法总结:


1      :s/pattern/replace/           替换当前行


2      s/pattern/replace/g              替换当前行所有


3      :lines/pattern/raplace/          替换指定行


4      :line,lines/pattern/replace/     替换指定范围内的行


5      :%s/pattern/replace/            替换所有行


6      :.,$s/pattern/replace/g          从当前行末尾至编辑缓冲区的末尾进行相同的替换


7      :line,.s/pattern/replace/g       从编辑缓冲区的指定位置到当前行进行相同的替换


说明 :


1      所有的ex命令都以:开头。


2      :s只替换当前行上该模式的第一个匹配项。


3      为了替换所有匹配项,需在该命令的末尾键入字母g。例如::s/UNIX/linux/g


4      替换前进行确认,可在命令末尾添加c。例如::s/UNIX/linux/cg


5      .点号代表当前行。$代表缓冲区最后一行。%代表编辑缓冲区内所有的行。


8.3 交换字符


交换两个字符的位置:   xp


交换两行的位置:ddp  


调换两个单词(光标开始处于第一个单词的左边):deep


9 删除


9.1 删除命令


vi命令


操作键


x


 删除当前光标处的字符


X


 删除光标左边的字符


D


 删除从当前光标到本行末尾的字符


J


 删除两行之间的换行符 (亦可用于合并两行)


dmove


 删除从当前光标到move所给位置的字符


dd


 删除当前行


ex命令


 


:lined


 删除指定行


:line,lined


 删除指定范围内的行


 


9.2 常用的删除组合命令


说明:操作符命令+位移命令


1      nx                  删除多个字符(n为删除的字符个数)       


2      dw                  删除1个单词


3      d10w               删除10个单词


4      d10W              删除10个单词,忽略标点符号。


5      db                   向后删除一个单词


6      d2)                删除两个句子


7      d5}                  删除5个段落


8      dG 或 :.,$d        删除当前行到编辑缓冲区末尾的所有行


9      dgg 或 d1G 或:1,.d       删除当前行到编辑缓冲区开头的所有行


10    :1,$d 或 :%f                删除整个编辑缓冲区


11    d/word                       删除从光标所在位置到单词word的所有文本


12    .,/word/d         删除从光标所在位置到单词word的所有文本


13    df x                 删除至当前行中x所在的位置


14    d^                   删除至该行的开始处


9.3插入模式中删除操作


^U                         删除当前行


^H                         删除前一个字符


^W                        删除前一个词


9.4 撤销或重复改变


vi命令:


1      u                     撤销上一命令对编辑缓冲区的修改


2      U                     恢复当前行(即一次撤销对当前行的全部操作)


3      .点号                重复上一命令对编辑缓冲区的修改


9.5 恢复删除


语法:"1p(P) 


说明:


1      1为缓冲区的编号。


2      p在当前行的下面插入,P在当前行的上面插入。


9.6 复制上一次删除


命令


说明


p


 复制上一次删除的内容,插入到光标的后面/下面


P


 复制上一次删除的内容,插入到光标的前面/上面


10 复制


10.1 接出(复制单词、句子、段落)


当在不删除文本的情况下将文本复制到无名缓冲区时,称为接出(yank)。(因此将命令命名为y、yy、Y)。


步骤:


1      使用y、yy、Y将文本由编辑缓冲区复制到无名缓冲区中,但不删除原始文本。


2      将光标移动到希望插入文本的位置。


3      使用P或p命令执行插入。


常用命令


操作键


yw


 接出一个单词


y10w


 接出10个单词


y10W


 接出10个单词,忽略标点符号


yb


 向后接出一个单词


y2)


 接出两个句子


y2}


 接出5个段落


yy


 接出一行


10yy


 接出10行


y$


 接出从当前字符到本行末尾的的文本


y0


 接出从当前字符到这一行开头之间的文本


10.2 复制与移动行


语法:


       :x,ycoz


       :x,ymz


说明:


1      x,y,z都是行号。x,y是源行,z是目标行号。


2      源行x,y被复制或移动,插入到z行的下面。


3      :m删除原始行,:co不删除原始行。


例子:


1      :2co4        复制第2行,插入到第4行下面


2      :2,4co8            复制第2行到第4行,插入到第8行下面


3      :2m4        移动第2行,插入到第4行下面


4      :2,4m8             移动第2行到第4行,插入到第8行下面。


11 使用缩写


要为经常使用的单词或表达式创建缩写,可使用:ab命令。


1      创建缩写,语法::ab [ short long ]


2      删除缩写,语法: :una short


12 命令补全与文本补全


命令补全:Tab


关键字补全:^N ^P


13 shell命令


14.1 执行shell命令


1      :!command      暂停vi,执行制定的shell命令


2      :!! pause vi      执行上一条shell命令


3      :sh              暂停vi,启动一个新的shell


4      :!csh           暂停vi,启动一个新的c-shell


14.2 使用shell命令处理数据


1      n!! command          对n行数据执行command


2      !move command    对当前光标至move所指定的位置的数据执行command


3      !move fmt              格式化当前光标到move所指定的行


15  显示与设置选项


15.1 显示选项


1      语法:                    :set [option]


2      显示所有选项的值: :set all


3      显示一个选项的值: :set option?


15.2 设置选项


语法::set [no]option..... :set option[=value]...


15.3常用设置命令


设置行号显示与否:             简写 :set nu  / :set no nu

设置自动缩进:            简写 :set ai / :set no ai

设置缩进宽度:            简写 :set sw=4

设置大小写忽略与否:   简写 :set ic / :set no ic

16 初始化文件与配置文件


16.1初始化文件


vi的初始化文件:.exrc


vim的初始化文件:vimrc


16.2配置文件


linux配置文件:             /usr/share/vim/vimrc


查找Windows配置文件:      scriptnames


你可能感兴趣的:(vi,Vim常用命令,Vim的分屏技巧的使用)