zoukankan      html  css  js  c++  java
  • Linux命令:vi | vim命令

    vim - vi 增强版。文本编辑器

    格式:vim [options] [file ..]

    说明:如果file存在,文件被打开并显示内容,如果文件不存在,当编辑后第一次存盘时创建它

    [options]常用选项:

           vim +[num] :直接进入到编辑文挡的第num行

           vim +  :直接进入到最后一行

           vim +/PATTERN :直接跳转到模式PATTERN第一次匹配到的行

           vim -m  :只读方式打开文件

           vim -d file1 file2... :打开编辑多个文件

    vim的三种模式:

      命令模式:默认模式,移动光标,剪切/粘贴文本等

      输入(编辑)模式:修改文本

      末行(扩展)模式:保存,退出,查找等

    模式切换:

           1、命令式 to 输入模式

                  i:在当前光标所在处输入:

                  I:在当前光标所在行的行首

                  a:在光标所在处的后面输入

                  A:在当前光标所在行的行尾输入

                  o:在光标所在行的下方新增一个空白行输入

                  O:在光标所在行的上方新增一个空白行输入

             2、  输入模式 to 命令模式:

                  按ESC键

            3、  命令模式 to 末行模式:

                  按:键

            4、末行模式 to 命令模式

                  按两次ESC键

    命令模式的常用快捷键

           1、光标移动

                  字符间跳转:

                         h:左     l:右      j:下      k:上

                         #[h | l | j | k ]:跳转#个字符

                  单词键跳转

                         w:跳至后一个单词的词首

                         b:跳至当前或前一个单词的词首

                         e:当前或下一个单词的词尾

                  当前页面跳转:

                         H:当前屏幕的最上面

                         L:当前屏幕的最下面

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

                         zz:将光标所在当前行移动到屏幕中间

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

                  行内移动:

                         0:数字0绝对行首

                         ^:第一个非空白字符

                         $:绝对行尾

                  行间移动:

                         #G     跳转到#行

                         #gg    跳转到#行

                         G:最后一行

                         1G:第一行

                         gg:第一行

                  句子间移动:

                         ):

                         (

                  段落间移动:

                         {

                         }

                  翻屏操作:

                         Ctrl+f:向文件尾部翻一屏

                         Ctrl+b:向文件首部翻一屏

                         Ctrl+d:向文件尾部翻半屏

                         Ctrl+u:向文件首部翻半屏

           2、编辑操作

                  字符编辑

                         x或DEL键:删除光标所在处字符

                         #x:删除光标所在处开始后的#个字符

                         xp:交换光标所在处的字符及后面字符的位置

                         ~:大小写转换

                         J:删除当前行末尾的换行符

                  替换命令:   

                         r:替换光标所在处字符,输入一个字符进行替换,可用于单词拼写错误情况

                         R:切换成REPLACE模式

                  删除命令

                         d:删除命令

                                结合各光标跳转命令使用

                                d$:删除光标所在位置一直到行尾所有字符(包括光标所在字符)

                                d^:删除光标所在位置一直到行首所有字符(不包括光标)

                                d0:删除到行首

                        

                                dw:删除到后面第一个单词词首

                                de:删除到后面第一个单词的词尾

                                db:删除到前面第一个单词词首

                                dd:删除一行

                                #dd:删除光标所在处以下N行

                                dG:删除到文档尾部

                                dgg:删除到文档首部

                         c:改变,删除以后直接进入插入模式

                                c$:删除光标所在位置一直到行尾所有字符(包括光标所在字符)

                                c^:删除光标所在位置一直到行首所有字符(不包括光标)

                                c0:删除到行首

                                cc:删一行

                                #cc:删除光标所在处以下N行

                        

                         y:yank,复制

                                yy:复制1行

                                #yy:复制#行

                         p:paste,粘贴yy复制的内容或者dd删除的内容

                                复制或删除的是整行

                                       p:粘贴在光标所在行的下方

                                       P:粘贴在光标所在行的上方

                                复制或删除的为非整行

                                       p:粘贴在光标所在字符的后面

                                       P:粘贴在光标所在字符的前面

                  撤销编辑:

                         u:undo

                         #u

                         U:撤销光标落在这行后所有此行的更改

                  恢复撤销:

                         Ctrl+r,和u意义相反

           重复执行此前的命令:"."

           重复签一个操作N次:"N."

           命令模式特殊用法:

                  100iwang[ESC]粘贴“wang”100次

                  <start position><command><end position>

                  Command:

                         y复制、d删除、gU变大写、gu变小写

                  例如:0y$命令意味着:

                         0->先到行头

                         y->从这里开始拷贝

                         $->拷贝到本行最后一个字符

                                ye从当前位置拷贝到本单词的最后一个字符

                   di  "光标在" "之间,则删除这行中" " 之间的内容,可以是多种符号" ' () [] {} 等等

                  yi   光标在()之间,则复制()之间的内容

                  vi[  光标在[]之间,则选中[]之间的内容

                  dtx    删除字符直到遇见光标之后第一个x字符

                  ytx      复制字符直到遇见光标之后的第一个x字符

    末行模式(扩展模式):

           1、范围定界

                  :start,end

                  # 具体第#行,例如2表示第二行

                  1,2          第1到第2行

                  10,19      10到19行

                  10,+9   从第10行向后走9行

                  .             表示当前行

                  $            最后一行

                  $-1         倒数第二行

                  /pat1/,/pat2/  第一次被pat1匹配到的行,到第一次被pat2匹配到的行

                  #,/pat/                  从#行开始到第一次被pat匹配到的行

                  % 全文

                  注意:如果不用地址定结符,只检查光标所在行

          

       编辑命令:

                  d 删除

                  y 复制

                  w /path/to/somewhere :将范围内的行另存至指定文件中

                  r /path/to/somefile:把somefile文件内容插入到地址定界后面

                         例如 10r xxx  将xxx文件插入到第十行后面

                  !command     执行命令

                  r !命令     #将命令执行结果插入,如 r !hostname 将hostname执行结果插入进入文档

           2、查找

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

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

                         n:与命令同方向

                         N:与命令反方向

           3、*查找替换:

                  :地址定界s/查找模式(正则)/替换为内容/gi

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

          要替换的内容:不能使用模式,但是可以使用1,2 等后向引用副号;还可以使用&引用前面查找到的整个内容

                  修饰符:             

                         g:全局替换,一行中出现多次也替换

                         gc:全局替换,每次替换前询问

                         i:不区分大小写

                         &:用于在替换为的内容部分中引用前面匹配到的所有内容

    定制vim工作特性:

      配置文件:永久有效

        全局:/etc/vimrc

        个人:~/.vimrc

           扩展模式:当前vim进程有效

        (1) 行号

                         显示:set number, 简写为set nu

                         取消显示:set nonumber, 简写为set nonu

        (2) 忽略字符的大小写

                         启用:set ic

                         不忽略:set noic

        (3) 自动缩进

                         启用:set ai

                         禁用:set noai

         (4) 智能缩进

                         启用:smartindent简写set si

                         禁用:set nosi

        (5) 高亮搜索

                         启用:set hlsearch

                         禁用:set nohlsearch

         (6) 语法高亮

                         启用:syntax on

                         禁用:syntax off

         (7) 显示Tab和换行符^I 和$显示

                         启用:set list

                         禁用:set nolist

                  (8) 文件格式

                         启用windows格式:set fileformat=dos

                         启用unix格式:set fileformat=unix

                         简写:set ff=dos|unix

                  (9) 设置文本宽度

                         set textwidth=65 (vimonly)

                         set wrapmargin=15

                  (10) 设置光标所在行的标识线

                         启用:set cursorline,简写cul

                         禁用:set no cursorline

                  (11) 复制保留格式

                         启用:set paste

                         禁用:set nopaste

  • 相关阅读:
    修改浏览器滚动条样式
    js实现无缝轮播
    JS (canvas) 两个小球碰撞
    js里div随着鼠标一起移动
    js的动态加载、缓存、更新以及复用
    js阻止事件冒泡的两种方法
    核心DOM和html DOM的区别
    JavaScript 事件流、事件处理程序及事件对象总结
    css3 实现飞入由小变大
    简单手写js轮播
  • 原文地址:https://www.cnblogs.com/ysuwangqiang/p/11411396.html
Copyright © 2011-2022 走看看