Vim学习笔记

博客主页:https://tomcat.blog.csdn.net
博主昵称:农民工老王
主要领域:Java、Linux、K8S
期待大家的关注点赞收藏⭐留言
家乡

目录

  • 模式介绍
  • 指令概览
  • 启动退出
  • 移动光标
  • 插入
  • 删除
  • 复制
  • 替换
  • 撤销
  • 搜索
  • 信息
  • 设置
  • 外部命令
  • 技巧

模式介绍

Vim有以下四种主要模式:

  • 正常(normal)模式(也称为普通模式),缺省的编辑模式;如果不加特殊说明,一般提到的命令都直接在正常模式下输入;在任何其他模式中,都可以通过键盘上的Esc键回到正常模式。
  • 插入(insert)模式,输入文本时使用;比如在正常模式下键入 i(insert)或 a(append)即可进入插入模式。
  • 可视(visual)模式,用于选定文本块;教程中已经提到可以用键v(小写)来按字符选定,Vim里也提供其他不同的选定方法,包括按行和按列块。
  • 命令行(command-line)模式,用于执行较长、较复杂的命令;在正常模式下键入冒号(:)即可进入该模式;使用斜杠(/)和问号(?)开始搜索也算作命令行模式。命令行模式下的命令要输入回车键( Enter)才算完成.

按下 ESC 键会带您回到正常模式或者撤消一个不想输入或部分完整的命令。

此外,Vim也有个选择(select)模式,与普通的Windows编辑器行为较为接近,选择内容后再输入任何内容,将会替换选择的内容。在以可视模式和选择模式之一选定文本块之后,可以使用Ctrl-G切换到另一模式。这个模式主要是为了模拟 Windows 编辑器的行为,并不是Vim的主要用法,使用它反而会给Vim里的自动化带来麻烦,所以我们也就不多作介绍了。

指令概览

基础指令
Vim学习笔记_第1张图片
完全指令
Vim学习笔记_第2张图片

启动退出

  • 进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车>
  • 退出 Vim 编辑器,请输入 :q! <回车> 放弃所有改动。或者输入 :wq <回车> 保存改动。

移动光标

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

  • 0 (数字零): 移动光标到行首。
  • 数字+w:如2w,使光标右移两个单词,以单词后的空格为计数的标准,计数包括光标本身的单词,光标将停在目标单词的第一个字符。
    Vim学习笔记_第3张图片
  • 数字+e:如2e,使光标右移两个单词,以单词本身为计数的标准,计数包括光标本身的单词,光标将停在目标单词的最后一个字符。
    Vim学习笔记_第4张图片

G:可以使得当前光标直接跳转到文件最后一行。
gg:光标直接跳转到文件第一行。
%:查找配对的括号,包含( )、[ ]、{ }。

插入

i:在光标所在字符前开始插入
a:在光标所在字符后开始插入
o:在光标所在行的下面另起一新行插入
s:删除光标所在的字符并开始插入
I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
A:在光标所在你行的行尾开始插入
O:在光标所在行的上面另起一行开始插入
S:删除光标所在行并开始插入

删除

以下所有删除实际上是剪切,删除的内容会被存储在剪切板中。可以通过p进行粘贴。

x:删除光标所在位置的字符
de:删除 [ 光标所在位置,光标所在单词的最后一个字符)
dw:删除 [ 光标所在位置,下一个单词的第一个字符)
d$:删除 [ 光标所在位置,本行最后一个字符]
dd:删除该行。
cw / ce:删除 [ 光标所在位置,光标所在单词的最后一个字符),然后在光标所在位置进入编辑模式。
c$:删除 [ 光标所在位置,本行最后一个字符],然后在光标所在位置进入编辑模式。

复制

按v进入可视模式。
移动光标,以选中需要复制的文本。
按y复制。
将光标移动到目标位置
按p粘贴

替换

r:替换光标所在字符,输入替换后的字符后,立刻退出编辑模式。
R:替换光标所在字符,输入替换后的字符后,光标向右移动一个位置,准备替换下一个字符,按才退出替换的状态。
:s/old/new :在一行内替换头一个字符串 old 为新的字符串 new。
:s/old/new/g 在一行内替换所有的字符串 old 为新的字符串 new。
:#,#s/old/new/g:替换两行之间出现的每个匹配串,其中 #,# 代表的是替换操作的若干行中 首尾两行的行号。
:%s/old/new/g:在文件内替换所有的字符串 old 为新的字符串 new。
:%s/old/new/gc:会找到整个文件中的每个匹配串,并且对每个匹配串,提示是否进行替换。

撤销

u (小写的u):撤消以前的操作。
U (大写的U):撤消在一行中所做的改动。
CTRL-R:撤消以前的撤消命令,恢复以前的操作结果。

搜索

  • 在正常模式下输入 / 字符。您此时会注意到该字符和光标都会出现在屏幕底部,这跟 : 命令是一样的。
  • 接着输入 待查找的字符串,然后按回车键。
  • n键查找下一个。按N查找上一个。
  • 如果您想逆向查找字符串,请使用 ? 代替 / 进行。

信息

CTRL-G:显示当前编辑文件中当前光标所在行位置以及文件状态信息。

设置

set number: 显示行号,可简写为set nu
set nonumber:关闭行号,可简写为 set nonu
set list:把制表符显示为^I ,用$标示行尾。
set readonly:设置只读。
set tabstop=4:设置 tab space 为4个空格,可简写为set ts=4,此处的4可以换为任意正整数。

外部命令

输入! 然后紧接着输入一个外部命令可以执行该外部命令。

技巧

Vim的行内编辑可以归纳为[n]at

  • [n]是可选的量词,表示处理对象的数量。
  • a表示action,可以是c(change),y(yank),d(delete)。
  • t表示target,可以是w(word),e(end),$(行尾),0(行首)。
  • c是change,执行c动作后会进入编辑模式,d是delete,执行d动作后不会进入编辑模式,注意二者区别,灵活使用。
  • w和e的区别在于如何处理空格,w把空格当做当前word的一部分,e则不处理空格。
  • 关于word间空格的一个例外是,c不处理,所以cw和ce是一样的,而y,d则会处理空格,所以yw,ye,或dw,de不一样。
  • W或E则表示在action处理时包括标点。

如需转载,请注明本文的出处:农民工老王的CSDN博客https://blog.csdn.net/monarch91 。

你可能感兴趣的:(Linux,vim)