Linux笔记 vi/vim编辑器

一、vi/vim的三种模式
 
  vi编辑器有三种模式:命令模式(command mode)、插入模式(Insert mode)、底行模式(last line mode)。就是你直接用命令(vi  文件名)打开一个文件的话,默认是在命令模式下。命令模式下是不能直接编辑文本的,你输入的字母会被当作命令执行。比如输入i,是指在当前光标前输入,并且切换到插入模式。在插入模式下你就可以进行文本的编辑。插入模式下你按Esc可以返回命令模式。在命令模式下,通过输入:(英文冒号)可以切换到底行模式,底行模式下可以做一些保存,字符替换等操作,底行模式下命令以回车结束,退出或者返回命令模式,或者双击Esc返回命令模式。比如wq再回车,表示保存并退出编辑。插入模式和底行模式不能直接切换,要经由命令模式。进入底行模式,底部会出现冒号提示;进入插入模式,底部会出现--INSERT--提示。如果没有,先进入底行模式,输入set showmode+回车 即可显示提示。
 
二、vi/vim的基本命令
 
1.vi基本语法:vi [选项] [参数]
 
选项:
 
+<行号>:从指定行号的行开始先是文本内容;
-b:以二进制模式打开文件,用于编辑二进制文件和可执行文件;
-c<指令>:在完成对第一个文件编辑任务后,执行给出的指令;
-d:以diff模式打开文件,当多个文件编辑时,显示文件差异部分;
-l:使用lisp模式,打开“lisp”和“showmatch”;
-m:取消写文件功能,重设“write”选项;
-M:关闭修改功能;
-n:不实用缓存功能;
-o<文件数目>:指定同时打开指定数目的文件;
-R:以只读方式打开文件;
-s:安静模式,不现实指令的任何错误信息。
 
参数:
文件列表:指定要编辑的文件列表。多个文件之间使用空格分隔开。
 
2.不同模式下的语法
 
----命令模式:----
 
1)粘贴复制删除等操作
yy            复制光标所在行
2yy           复制光标所在行开始的2行
p             粘贴
dd            删除光标所在行(实际是剪切)
3dd           删除光标所在行开始的3行(剪切)
x             删除当前光标所在的字符
X(大写)      删除当前光标前一个字符
 
2)光标的移动
h  左移    j  下移   k  上移    l  右移 (四个箭头也可以上下左右移动)
H 当前屏幕第一行 M      当前屏幕中间 L      当前屏幕最后一行
ctrl+f 往下翻页 ctrl+b 往上翻页
G 定位到最后一行(整个文档最后一行) 5G 定位到第5行 gg 定位到第一行(整个文档第一行)
w 跳到下一个头部单词 b 跳到上一个单词 e 跳到下一个单词的尾部
0      行首 ^      行首,非空字符 $      行尾
{   移动到上一个代码块 } 移动到下一个代码块
 
3)编辑模式及末行模式等其他模式的入口
插入模式(INSERT MODE)
        a  在光标后一位进行插入编辑
        A  在当前行的最后进行插入编辑
        i  在当前光标的前一位进行插入编辑
        I  在当前行的行首进行插入编辑
        o  在当前行向下插入一行进行编辑
        O  在当前行向上插入一行进行编辑
选择模式(VISUAL MODE)    v 以字符为单位进行选择    V 以行为单位进行选择    ctrl+v 以块为单位进行选择
替换模式(REPLACE MODE)   r 单次替换    R 替换模式
扩展模式 用于文件操作,搜索    :   /
 
4)其他
u           撤销
ctrl+r      反撤销(撤销u操作)

  

----底行模式:----
 
末行模式主要用于保存或退出文件,以及设置Vim编辑器的工作环境,还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式中输入一个冒号就可以了。
 
:w      保存
:q      退出
:q!      强制退出(放弃对文档的修改内容)
:wq!     强制保存退出
:set nu 显示行号 :set nonu 不显示行号
:命令 执行该命令 :整数 跳转到该行
:s/one/two 将当前光标所在行的第一个one替换成two :s/one/two/g 将当前光标所在行的所有one替换成two :%s/one/two/g 将全文中的所有one替换成two
?字符串 在文本中从下至上搜索该字符串 /字符串 在文本中从上至下搜索该字符串

  

---编辑模式:----
 
      用vim随意进入一个文件按‘a’即可进入输入模式,输入模式下,可任意输入无特别要求,和Windows的文本编辑操作基本相同。
注:在命令模式中按“a”跳入下一格,按“i”保持原位置,按“o”跳入下一行
 
 
 
原文:https://blog.csdn.net/yuchenxueyue/article/details/82761050 
           https://blog.csdn.net/xing851483876/article/details/84553945 
原文地址:https://www.cnblogs.com/dumpling-z/p/11170317.html