欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入免费知识星球。

Vim基本使用

Linux 迷途小书童 4年前 (2019-12-04) 3049次浏览 2个评论

软硬件环境

  • ubuntu 18.04 64bit
  • vim

安装vim

ubuntu 系统安装完毕后,默认的 vi 功能是被阉割的,我们需要安装 vim

sudo apt install vim

视频看这里

3种工作模式

vi

使用 vi 编辑文件时,默认处于命令模式。这时可使用方向键(上、下、左、右键)或快捷键 kjhi 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。

输入模式下,vi 可以对文件执行写操作,类似于在 Windows 的文档中输入内容。

编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。

基本操作

命令 描述
:set number 加行号
:w 保存文件
:wq 保存并退出
:q 退出vim
:q! 不保存退出
:x 保存退出
:sav 文件名 保存成文件名
:i 进入插入(编辑)状态
按Esc键 退出编辑状态

语法高亮

命令 描述
:syntax on 打开语法高亮
:syntax off 关闭语法高亮
:set syntax=perl 强制语法高亮

文件内移动

命令 描述
h 左移
l 右移
j 下移
k 上移
e 移到单词末尾
b 移到单词开头
0 (数字0)移到行首
^ 移动到行首
I (大写字母i)光标移到行首,并进入编辑状态
o (字母o)光标移到下一行行首,并进入编辑状态
O (大写字母o)光标移到上一行行首,并进入编辑状态
$ 光标移到行末尾
A 光标移到行末尾,并进入编辑状态
G 光标移到文件的最后一行的起始位置
gg 光标移到文件开头
L 光标移到当前屏幕的底部
:行数 移动光标到指定行数
列数l (列数+字母l)移动光标到指定列
{ 光标移动到上段
} 光标移动到下段
( 光标移动到上句
) 光标移动到下句

复制、剪切、粘贴

命令 描述
y 拷贝选中的文本
p (小写字母p)粘贴到光标后
P (大写字母p)粘贴到光标前
x 剪切当前字符
s 剪切当前字符并进入编辑状态
dd 剪切当前行
5dd 剪切自当前行起的5行内容
yy 复制当前行
5yy 复制自当前行起的5行内容
y$ 复制当前到文件尾的内容
D 剪切当前到文件尾的内容
dG 删除自光标起的所有行
u 回到修改前的状态
cw 删除光标所在的单词,如果光标在单词的中间,则删除自光标处到单词结尾,并进入编辑状态

查找

命令 描述
/字符串 从头开始查找字符串,按n跳到下一处,N跳到上一处
?字符串 从尾开始查找字符串
* 查找光标所在的单词
/\c字符串 查找字符串,不分大小写
/l[io]ve 查找love或者live
/\<字符串 查找以指定字符串开头的单词
/字符串> 查找以指定字符串结尾的单词
/\<字符串> 查找完全匹配字符串的单词

替换

命令 描述
r 光标移动到要替换的字符,按下r再输入另一字符进行替换
:%s/旧字符串/新字符串/g 将文件中的旧字符串替换成新字符串
:起始行,结束行s/旧/新/g 将起始行到结束行内的旧字符串替换成新字符串
:%s/*$//g 删除所有空格
:g/字符串/d 删除包含字符串的所有行
:%s/^/字符串/g 在每行开头插入字符串
:%s/$/字符串/g 在每行末尾插入字符串
:s/旧/新/ 在当前行把第一次出现的旧字符串替换成新字符串
:s/旧/新/g 在当前行把出现的旧字符串替换成新字符串

vim与linux命令结合使用

命令 描述
:!命令 执行命令
!!命令 执行命令并将输出添加到当前文件当前位置,会替换原来的内容
:r !命令 执行命令并将输出添加到当前文件当前位置的下一行
:sh 临时回到命令行,原来打开文件的进程在后台运行

文本缩进

命令 描述
:set autoindent 打开自动缩进
:set smartindent 打开智能缩进
:set shiftwidth=4 定义缩进大小为4个空格
>> 当前行缩进
5>> 自光标起5行整体进行缩进
<< 当前行不缩进(un-indent)
5<< 自光标起5行整体不缩进

读写文件

命令 描述
:起始行数,结束行数 w 输出文件名 将从起始行数到结束行数输出到指定文件名中,如果文件名已经存在,则w后要跟上!,且文件内容会被替换
:起始行数,结束行数 w >> 输出文件名 将从起始行数到结束行数输出到指定文件名的末尾
:r 文件名 将指定文件名的内容添加到当前文件中来
:行数r 文件名 将指定文件名的内容添加到当前文件的指定行处

大小写

命令 描述
Vu 将当前行中的大写字符转换成小写字符
VU 将当前行中的小写字符转换成大写字符
g~~ 将当前行的大小写互换
vEU 将单词转换成大写
ggguG 全文转换成小写
gggUG 全文转换成大写
:%s/\<./\u&/g 将每个单词的首字母转换成大写
:%s/\<./\l&/g 将每个单词的首字母转换成小写
:%s/.*/\u& 将每行的首字母转换成大写
:%s/.*/\l& 将每行的首字母转换成小写
gU0 (数字0)从光标所在位置到行首,都变为大写
gU$ 从光标所在位置到行尾,都变为大写
gUG 从光标所在位置到文章末尾都变为大写
gU1G 从光标所在位置到第一个字符,都变为大写
喜欢 (0)

您必须 登录 才能发表评论!

(2)个小伙伴在吐槽
  1. 真不错!!!
    匿名2022-01-03 09:56
Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

请关闭 Adblock 等类似浏览器插件,然后刷新页面访问,感谢您的支持!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.