Vi 文本编辑器

来源:互联网 发布:钢琴小提琴合奏 知乎 编辑:程序博客网 时间:2024/06/10 18:54

vi:Visual Interface (可视化接口)属于全屏文本模式化的编辑器
vim:vi improved 高级版vi,以后直接使用vim就可以了。

vi的模式解释

  • 编辑模式:以怎样的方式进入另外2个模式、可以直接复制、粘贴,等编辑的命令的操作
  • 输入模式:正常输入文本,正常打字,编写程序的地方
  • 命令行模式(末行模式):就是在整个屏幕最下面输入指令的地方,也是vim的内置的命令行接口,执行vim内置命令

vi模式的切换

  • 编辑模式 —-进入—> 输入模式,并选择光标停放的位置
    • i:在当前光标所在处进入输入模式
    • a:………………………….的后面
    • I:在当前光标所在行的行首输入
    • A:…………………………… 行尾
    • o:在当前光标所在行的下方新增一个空白行输入;
    • O:…………………………… .上方
  • 输入模式 —–退回—->编辑模式
    • ESC键
  • 编辑模式 —-进入—> 末行模式;
    • :(按键:shift+:)
  • 末行模式—-退回—>编辑模式;
    • ESC,ESC(执行命令的情况下2下,一般情况一下即可)

vi模式的基本操作

vim的使用格式

  • vim [选项] /路径/文件名 // 文件不存为创建,存在为打开

vim退出

  • :w —>保存不退出
  • :q! –>不保存并退出
  • :wq –>保存并退出
  • :x –>保存并退出
  • 编辑模式:ZZ,保存退出

vim 文件打开操作

多文件跳转
  • :next 下一个
  • :prev 上一个
  • :first 第一个
  • :last 最后一个
  • :qall 退出所有的文件
  • :wqall:修改并退出多个文件
分隔窗口打开多个文件
  • -o:水平分隔
    ctrl+w,左右箭头 ;在多个窗口间切换
  • -O:垂直分隔
    ctrl+W,上下箭头
// 打开多个文件vim  文件1 文件2 文件3 文件4 // 分割窗口打开多个文件vim -o 文件1 文件2 文件3 文件4 //↑ 在分割窗口中多个文件间切换,必须在编辑模式同时按下ctrl+W ,松开然后按上下或左右键。这样才能在多个窗口间切换
打开文件后在光标直接定位在第#号行首
  • +#:打开文件后光标在第#号行首
  • +:打开文件后光标在最后一行
// 打开文件1后光标定位在第30行vim +30 文件名1// 打开文件后光标定位在文件的最后一行vim + 文件名

光标的移动

单字符移动:
  • h:左
  • l:右
  • j:下
  • k:上
    可以和数字组合让字符移动
用法:先按下数字在按下上下左右其中之一,例如//要求向下移动3行操作:按下数字 3 ,然后在按下字母 j 。顺序很重要,不要求同时按下//要求向右移动5个字符的位置操作:按下数字 5 ,然后在按下字母 l 。顺序很重要,不要求同时按下
单词间移动:
  • w:调至下一个单词的词首
  • b:当前或前一个的词首
  • e:当前或下一个词的词尾
行内移动:
  • 0:绝对行首
  • ^:第一个非空白字符
  • $:绝对行尾
句子间移动:
  • ):上一句
  • (: 下一句
段落间移动:
  • }:上一段
  • {:下一段
行间移动:
  • #G:第几行
  • G:最后一行

编辑操作

删除:#带表此处输入数字
  • x:删除光标处所在处的字符
    • #x:删除光标所在处开始向后的第#个字符串
      -d:结合各个光标移动方式删除,删除的内容就是光标所在位置到移动结束时所在的位置,中间这些都会被删除
    • dd:删除一行
    • #dd:删除所在行后的#行
r:替换光标所在处的字符
  • 一次只替换一个
在光标所在位置,在编辑模式下,按下r,然后按下任意一个字符,光标所在处的字符会被替换成任意一个输入的字符,同理 按下3,在按r,在输入任意字符,任意字符就会替换光标所在处的往后的3个字符为,刚才输入的任意字符
c:改变
  • cc :改变删除一行
  • #cc:改变所在行后的#行
    • 跟d一样操作,不同之处在于删除之后进入输入模式
y:yank,复制
  • 跟d一样操作
p:paste 粘贴
  • 复制或删除的是整行
    p:当前行的下一行
    P:当前行的上一行
  • 复制或删除的为非整行,或者是个单词
    p:粘贴在光标所在字符的后面
    P: 粘贴在光标所在字符的前面
撤销编辑
  • u:undo
    #u:最近50次操作
撤销此前的撤销操作
  • ctrl+r:
重复执行此前的命令:(常用)
  .

末行模式下(命令模式下):范围定界

结合其他方式使用的,给其他方式界定范围的。比如表达意思可以是,删除从10行到19行的东西。行为:删除+范围 10行到19行。
复制 第10行到其下面4行的东西。行为:复制+范围 第10行到其下面4行的东西。
- 使用解释
- start,end:start开始,end结束
- . :表示当前行
- $ : 表示最后一行
- /pat1/,/pat2/:起始处为光标所在行

    1019 //从第10行开始,到底19行结束    10,+4 //从第10行开始,到往后走4行结束    .,+5   // 从当前行,到往后走5行结束    .,$    // 当前行,到最后一样    .,$-2  //倒数第3行    /in/,/int   // 从第一次出现字符  in 开始 ,到第一处出现字符int为止 中间的信息
  • 结合范围定界的使用方式
//删除.,$d //.,$是范围定界后面直接跟d删除行为。中间没有空格,然后点回车 /in/,/int/d   // 从第一次出现字符  in 开始 ,到第一处出现字符int为止 中间的信息都删除。是从光标所在行的起始为止开始搜索

查看类操作

翻屏:
    ctrl+f:向文件尾部翻一屏    ctrl+b:向文件首部翻一屏    ctrl+d:向文件尾部翻半屏    ctrl+u:向文件首部翻半屏    Enter:下一行    k :上一行
查找:
   /keyword  //从文件首部往文件尾部查找   ?keyword  // 从文件尾部往文件首部查找   n:   N:   支持正则表达式   :set nohlsearch 关闭高亮显示,对当前shell有效
    /r..t   // 找这个文件中r开头t结尾,中间跟着任意2个字符

vim可视化模式:

选中某个区域或某些字符
  • 在编辑模式下,按下v ,移动光标选中,按下编辑类的命令进行对应操作
    • v:按光标走过的区域选择
    • V:选择矩形块
分割当前窗口:
  • Ctrl+w, s
  • Ctrl+w, v

在命令行模式下一些操作

命令行模式下的第一个字符命令都是 : 而且所有功能的取消方法:set no(功能命令)

窗口属性的定义:
  • :set nu :显示行号

    • :set nonu :取消行号
  • :set ai :自动缩进

    • :set noai :取消自动缩进

    • :set ic :区分大小写

    • :set noic :取消区分大小
  • 显示对应的括号:意思:就是每个括号都有一个对应的另一半,当光标在括号的其中一半显示时,另一半与之对应的括号会一起高亮显示

    • :set sm (show match)
      • :set nosm
  • 语法高亮:

    • :syntax on
    • :syntax off :取消语法高亮
  • 搜索高亮:

    • :set hlsearch
      • :set nohlsearch :取消搜索高亮

vim的配置文件:只要把上面的配置命令,直接写入下面对应的文件保存即可

  • 全局:/etc/vimrc (只有管理员可以定义)

  • 个人:~/.vimrc (隐藏文件)

查找替换:查找范围内的符合条件的内容,替换成新的内容

:地址定界s/查找模式/替换为的内容/gi
g:全局替换
i:不区分大小写
:地址定界s@查找模式@替换为的内容@gi :下面示例3讲解

例:// 从当前行到往后面+9行把所有的mount替换成大写MOUNT。注意:实际上每行如果有多个匹配的到的只替换每行的第一个mount:.,+9s/mount/MOUNT/ 例:// 从当前行到往后面+9行把所有的mount替换成大写MOUNT。注意:如果想全部替换后面g:.,+9s/mount/MOUNT/g例3:如果想把文件内容中的/bin/true替换成大写的/bin/true .这时候/作为替换的特殊字符,不得不面对转义这样的事情。这是时候可以/可以@代替避免转义。如下:.,+19s@/bin/true@/BIN/TURE@g例子:利用正则表达式,替换文件中空白开头的#号字符,为什么都没有:1,+9s@[[:space:]]\{1,\}#@@g

&:用于在替换为的内容部分中引用前面匹配到的所有内容。多次引用还是用\1\2\3这样的正则表达式

// 行首没有#的全部加上#。&在这里的意思是查找到全部内容被引用了,#&:就是#后面+被引用的内容=被匹配的内容全部加上#号:1,30s@^[^#].*@#&@g

vi使用手册有一本500多页的使用手册,书名未知。

0 0
原创粉丝点击