学习-vim编辑器

2019-04-08

谈及文本,自然有编辑和处理两种操作

https://www.cnblogs.com/shiyanlou/archive/2017/09/05/7478346.html

正则表达式中: ^表示匹配字符串的开始位置

        $表示匹配字符串的结尾位置

        命令前加数字表示重复的次数

           加字母表示使用的缓冲区名称

        英文句号“.”表示触发上一个操作


vi 与 vim

vi 作为编辑器,通行于Linux世界,是完全相同的;一些接口会主动调用 vi

vim 在vi 的基础上,添加了“程序员”功能,例如:语法分析并颜色标志、正则表达式搜索、多文件编辑、块处理等等


按照功能分类:

  1.编辑文本  1.1编辑模式(输出即所得)

  2.命令处理  2.1一般模式(输出即命令)  2.2命令行模式(输出触发命令)

一般模式 :移动光标、删除字符/行、复制粘贴

编辑模式 :编辑文本  i/o/a/r/I/O/A/R进入;esc退出;insert插入字符/o

命令行模式:冒号/问号/斜杠触发,功能多样


1一般模式  NORMAL  一个<tab>在前面表示重要/两个<tab>在前面表示不重要

1.1移动光标

  hjkl  左下右上

  ctrl+b 等价于page down (屏幕向后一页)

  ctrl+f  等价于page up    (屏幕向后一页)

  n<space> 等价于按下n 个<space>键(光标右移n个字符)

  n<enter>   等价于按下n个<enter>  键(光标下移n个字符)结合上个操作可以移动到指定行列

  home 移动到该行最前端,列数为0处

  end 移动到该行最后端

  w  跳转到下个字的开头

  e  跳转到下个字的结尾

    H/M/L移动到屏幕所示的最上方行的第一字符/中间行的第一字符/最下行的第一字符

  gg   移动到文件的第一行

  G  移动到文件最后一行

  nG   移动到文件第n行

1.2查找与替换

  /word  向下查找字符串word

  ?word 向上查找字符串word

  n    重复前一个查找动作(N大写后查找方向相反)

  :n1,n2s/word1/word2/g  n1和n2是数字,表示查找区间为n1行到n2行之间,查找word1替换为word2;s(string) g(global)

              ($替换n2,表示最后一行)(gc替换g,表示每次替换前需要确认confirm)

1.3删除、复制、粘贴

  x  等价于delete(X大写删除方向:向前)(nx 连续x操作,删除多个)

  dd  剪切光标所在行(ndd 删除光标及其下面的共n行)

    dG   剪切光标所在行至最后一行

    d1G 剪切光标所在行至第一行

  d$ 剪切光标所在处,至该行最后一个字符

  d0 剪切光标所在处,至该行第一一个字符  等价于 d^

  dw   剪切一个单词

  yy 复制光标所在行

  nyy  复制光标所在及其向下共n行

    yG 复制光标所在行,至最后一行

    y1G  复制光标所在行,至第一行

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

  y0 复制光标所在字符至行首  等价于 y^

  p   粘贴复制的数据至光标位置的下一行(P大写,粘贴至上一行)

  u   恢复上一个操作 undo

  ctrl+r重复上一个操作 repeat(与u 操作搭配使用)

  .  重复前一个操作


2.编辑模式

2.1进入编辑模式说明

  i  insert 从光标处插入(大写I 从目前所在行第一个非空格符处开始插入)

  o    在下方插入新行(大写O 在上方插入新行)

  a    add   从光标处下一个字符插入(大写A 从光标所在行最后一个字符处开始插入)

  r  replace 取代光标处字符一次(大写R 取代字符一直到按下esc 键)

  esc   回归一般模式

3.命令行模式

  :w 保存编辑内容(:w! 强制写入,当然受权限限制) 

  :q  离开编辑器(:q! 不保存强制离开)

  :wq  保存并离开

  :x  同上

  ZZ   若文件无改动,不保存离开;若存在改动,则保存后离开

  :w filename 编辑的数据保存另一个文件filename(类似于另存)

  :r   filename 编辑的数据,添加文件的filename的内容(添加文件从光标所在行的后面)

  :n1,n2 w filename 保存的内容为n1,n2行

  :!command 暂时离开vi到命令行模式下执行command的显示结果/例如 :! ls /home 即可在vi中查看 /home下以ls输出的文件信息

  :set nu  显示行号

  :set nonu 取消显示行号


 

3.vim 的缓存文件、恢复与开启时的警告

编辑文件时有时会遭遇崩溃,同目录下会有名为 .filename.swp 的文件

再次编辑文件 vim filename

可能出现: 1:可能其他人会程序在使用该文件 

      2:前一个vim 环境下,未知原因导致 vim 中断(crashed)

有六个命令选项:

  1.Open Read-Only:只读打开

  2.Edit anyway:正常打开文件,不会载入暂存盘的内容

  3.Recover:加载暂存盘的内容,暂存文件需要手动删除

  4.Delete it:暂存档无用,开启文件前将其删除

  5.Quit:离开vim

  6.Abort:忽略编辑行为//感觉与quit类似


快选择

  v  字符选择,将光标经过的地方反白选择

  V  行选择,光标经过的行反白选择

  ctrl+v 块选择,

  y  反白的地方复制

  d  反白的地方删除


多文件编辑

  复制一文件中的一段到另一个文件,而vim 不能够在关闭时,把这一段保留。或者其他方法复制

  :n  编辑下一个文件

  :N    编辑上一个文件

  :file  列出该vim编辑的所有文件


 

多窗口功能

  有两个需要同时查看的文件

  :sp filename  开启新窗口,若有filename,表示新窗口打开新文件;否则打开同一文件(同步显示)  

 

  ctrl+w j  先同时按下ctrl和w,放开,按下j

  ctrl+w ↓  光标移动到下一个窗口

  ctrl+w k

  ctrl+w ↑  光标移动到上一个窗口


vim 环境设定与记录 (~/.vimrc, ~/.viminfo)

vim会主动的将你曾经做过的行为登记下来,记录动作的文件就是: ~/.viminfo,不想用这个功能,就直接删除~/.viminfo

vim的预设环境(重要如下)

  整体vim的设定值一般是置在/etc/vimrc这个文件里面,不建议大家来修改他。

  可以在自己的家目录里面建立个.vimrc文件,在这里面写入自己的内容就能实现了。

:set all "显示目前所有的环境参数设定值
:set hlsearch "高亮度反白(高亮度搜寻)  high light search
:set nohlsearch "取消高亮度反白(高亮度搜寻)  no high light search
:set backspace=2 "在编辑的时候可随时用退格键删除 (0、1的时候,只针对刚输入的字符有效)
:set autoindent "自动缩排  Automatic indentation
:set noautoindent "取消自动缩排
:set ruler "可显示最后一行的状态
:set showmode "左下角那一行的状态
:set nu "显示行号
:set nonu "取消行号
:set bg=dark "显示不同的底色色调  background 背景
:syntax on "进行语法检验,颜色显示 syntax 语法
:syntax off "关闭语法检验

 

posted @ 2019-04-23 11:07  zhang-kaihua  阅读(126)  评论(0编辑  收藏  举报