Vim上手
Vim的三种模式
vim三种模式相互转换
-
命令模式:
在命令行模式下,输入"vim 文件名"就进入了命令模式;
在编辑模式或者末行模式下,点击“ESC”键,即可入命令模式;
命令模式所输入的命令并不在屏幕上显示。
-
编辑模式:
在命令模式下输入插入命令i、o等命令都可以进入编辑模式;
在该模式下点击"ESC"键,回到命令模式。
-
末行模式:
按 “:” 键即可进入末行模式下,会在最后一行显示一个 “:” 作为末行模式的提示符,等待用户输入命令;
在该模式下点击"ESC"键,回到命令模式。
命令模式(Command Mode)
在该模式下可以进行光标的移动、复制、粘贴、删除、撤销以及进入编辑模式
1、光标的移动
命令 |
命令的含义 |
h或者向左方向键 |
光标向左移动一个字符 |
l或者向右方向键 |
光标向右移动一个字符 |
k或者向上方向键 |
光标向上移动一个字符 |
j或者向下方向键 |
光标向下移动一个字符 |
Ctrl+f或pageup键 |
屏幕向前移动一页 |
Ctrl+b或pagedown键 |
屏幕向后移动一页 |
数字0或者^ |
移动到本行行首 |
$ |
移动到本行行尾 |
gg |
移动到首行 |
G |
移动到尾行 |
nG(n是任意数字) |
移动到第n行 |
2、复制、粘贴、删除、撤销
命令 |
命令的含义 |
复制 |
—— |
yy |
复制光标所在行 |
nyy |
从光标所在行算起向下复制n行 |
yG |
从光标行复制到末尾 |
ygg |
从光标行复制到首行 |
粘贴 |
—— |
p |
从光标所在行向下粘贴已经复制或者粘贴的内容 |
P |
从光标所在行向上粘贴已经复制或者粘贴的内容 |
删除 |
—— |
x,X |
x向后删除一个字符,X向前删除一个字符 |
nx |
向后删除n个字符 |
dd |
删除/剪切光标所在的那一行 |
ndd(n为数字) |
删除/剪切光标所在行起向下一共n行 |
dG |
删除光标行到文本末尾 |
dgg |
删除光标行到文本首行 |
:%d |
删除文件中所有数据 |
撤销 |
—— |
u |
撤销一次 |
U |
撤销所有 |
选择范围 |
—— |
v |
按v后移动光标会选中指定字符,然后可以复制、粘贴等 |
3.进入编辑模式
命令 |
命令的含义 |
i |
在光标的前边进入插入模式 |
I |
在光标所在行的行首进入插入模式 |
a |
在光标的后边进入插入模式 |
A |
在光标所在行的行尾进入插入模式 |
o |
在光标所在行的下方插入空行并进入插入模式 |
O |
在光标所在行的上方插入空行并进入插入模式 |
s |
删除光标指定的字符并进入插入模式 |
S |
将光标所在行清除并进入插入模式 |
编辑模式(Input Mode)
在该模式下可以进行文本的编辑
末行模式(Last line Mode)
在该模式下可以进行文件的保存、查找、替换、行号的显示
1、文件的保存
命令 |
命令的含义 |
:w |
保存文本 |
:q |
退出vim |
:w! |
强制保存,在root用户下即使文本只读也可以完成保存 |
:q! |
强制退出,所有改动不生效 |
:wq |
保存并退出 |
2、查找、替换
命令 |
命令的含义 |
/word |
向光标之后寻找一个字符串为word(n向后继续搜索 N查找上一个) |
?word |
向光标之前寻找一个字符串为word(n向后继续搜索 N查找上一个) |
:%s/word1/word2/ |
把所有的word1替换成word2 |
:1,3/word1/word2/ |
把一行到三行的word1替换成word2 |
:2s/word1/word2/ |
把第二行的nmon替换成hello |
:%s/.$/beijing/ |
把以.为结尾.的换成北京(.前最好加上转义符\) |
:%s/^my/your |
把my开头的替换成your |
3、行号的显示
命令 |
命令的含义 |
:set nu |
显示行号 |
:set nonu |
不显示行号 |
vim操作演示
进入vim编辑器
cd /home/michaelxwang/
dir
vim hello.py
进入编辑模式输入代码
print("hello world 1")
print("hello world 2")
print("hello world 3")
进入命令模式移动光标、复制、粘贴、撤销
- 点击“ESC”进入编辑模式
- 点击“h、k、j、l”左上下右移动光标
- 点击“dd”删除当前行
- 点击“u”撤销上一步操作
进入末行模式设置行号、保存退出
#输入“:”进入末行模式
:
#设置行号
set nu
#保存编辑
:wq