设为首页收藏本站 |天气与日历| 2025-07-02 星期三 01:35:00 乙巳(蛇)年 六月初八 丑时
     
切换到窄版

私人站点

 找回密码
 立即注册
搜索
查看: 210|回复: 0

vim

[复制链接]

954

主题

954

帖子

3879

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3879
发表于 2022-3-1 15:49:17 | 显示全部楼层 |阅读模式
vi”visual interface”的简称, 它在Linux上的地位就仿佛Windows中的记事本一样. 它可以执行编辑、删除、查找、替换、块操作等众多文本操作, 而且用户可以根据自己的需要对其进行定制. vi是一个文本编辑程序, 没有菜单, 只有命令.
vim更高级一些, 可以理解是vi的高级版本.
vim需要自行安装, shell中输入vimtutor命令可以查看相关的帮助文档.


vim的三种模式
Vi有三种基本工作模式: 命令模式、文本输入模式、末行模式。
三种工作模式的切换如图所示, 从下图中可以看出编辑模式和末行模式之间不能相互切换, 必须经过命令模式.


命令模式下的操作
用户按下esc, 就可以使vi进入命令模式下; 当使用vi打开一个新文件开始也是进入命令模式下.
保存退出
快捷键
操作
ZZ
保存退出
代码格式化
快捷键
操作
gg=G
代码的格式化
光标移动
快捷键
操作
h
光标左移
j
光标下移
k
光标上移
l
光标右移
w
移动一个单词
gg
光标移动到文件开头
G
光标移动到文件末尾
0
光标移到到行首
$
光标移到到行尾
nG
行跳转, 12G, 跳到12行处
删除命令
快捷键
操作
x
删除光标后一个字符,相当于 Del
X
删除光标前一个字符,相当于 Backspace
dw
删除光标开始位置的字,包含光标所在字符
d0
删除光标前本行所有内容,不包含光标所在字符
D[d$]
删除光标后本行所有内容,包含光标所在字符
dd
删除光标所在行(本质其实是剪切)
ndd
从光标当前行向下删除指定的行数, 15dd
v/ctrl+v
使用hjkl移动选择内容, 然后按d删除其中ctrl+v是列模式, v为非列模式
撤销和反撤销命令
快捷键
操作
u
一步一步撤销, 相当于word文档的ctrl+z
ctrl-r
反撤销, 相当于word文档的ctrl+y
复制粘贴
快捷键
操作
yy
复制当前行
nyy
复制n, 10yy
p
在光标所在位置向下新开辟一行, 粘贴
P
在光标所在位置向下新开辟一行, 粘贴
剪切
操作
dd或者ndd删除, 将删除的行保存到剪贴板中, 然后按p/P就可以粘贴了
可视模式
快捷键
操作
v/ctrl+v
使用hjkl移动选择内容;
使用d删除
使用y复制
使用p粘贴到光标的后面
使用P粘贴到光标的前面
替换操作
快捷键
操作
r
替换当前字符
R
替换当前行光标后的字符
查找命令
快捷键
操作
/
/xxxx, 从光标所在的位置开始搜索, n向下搜索, N向上搜索
?
?xxxx, 从光标所在的位置开始搜索, n向上搜索, N向下搜索
#
将光标移动到待搜索的字符串上, 然后按n向上搜索,N向下搜索
shift+k
在待搜索的字符串上按shift+k或者K, 可以查看相关的帮助文档


切换到文本输入模式
从命令模式切换到文本输入模式只需输入如下命令:
快捷键
操作
i
在光标前插入
a
在光标后插入
I
在光标所在行的行首插入
A
在光标所在行的行尾插入
o
在光标所在的行的下面新创建一行, 行首插入
O
在光标所在的行的上面新创建一行, 行首插入
s
删除光标后边的字符, 从光标当前位置插入
S
删除光标所在当前行, 从行首插入
按列模式插入
先按ctrl+v进入列模式, hjkl移动选定某列,I或者shift+i向前插入, 然后插入字符, 最后按两次esc.


末行模式下的操作
从命令模式切换到末行模式, 输入冒号(:)
保存退出
快捷键
操作
q
退出
q!
强制退出,不保存修改内容
w
保存修改内容, 不退出
wq
保存并退出
x
相当于wq
替换操作
下面表格中old表示原字符串, new表示新字符串
快捷键
操作
:s/old/new/
光标所在行的第一个old替换为new
:s/old/new/g
光标所在行的所有old替换为new
:m, ns/old/new/g
将第m行至第n行之间的old全部替换成new
:%s/old/new/g
当前文件的所有old替换为new
:1,$s/old/new/g
当前文件的所有old替换为new
:%s/old/new/gc
同上但是每次替换需要用户确认
快速翻屏
快捷键
操作
ctrl + u
向下翻半屏(up)--光标向上移动
ctrl + d
向上翻半屏(down)--光标向下移动
ctrl + f
向上翻一屏(front)
ctrl + b
向后翻一屏(back)
在末行模式下执行shell命令
!shell命令
按下两次esc可以回到命令模式
分屏操作
在打开文件之后分屏:
快捷键
操作
sp
当前文件水平分屏
vsp
当前文件垂直分屏
sp 文件名
当前文件和另一个文件水平分屏
vsp 文件名
当前文件和另一个文件垂直分屏
ctrl-w-w
在多个窗口切换光标
wall/wqall/xall/qall/qall!
保存/保存退出/保存退出/退出/强制退出分屏窗口

在打开文件之前分屏:
分屏: vim -on file1 file2 …  
垂直分屏: vim -On file1 file2…  
注意: n可以省略, 有几个文件就分几屏
从末行模式切换回命令模式
按两次ESC, 退格(backspace)或者回车键



vim的配置文件
用户级别配置文件
~/.vimrc, 修改用户级别的配置文件只会影响当前用户, 不会影响其他的用户.
例如: 在用户的家目录下的.vimrc文件中添加
set tabstop=4  ----设置缩进4个空格
set nu        ----设置行号
set shiftwidth=4  ---设置gg=G缩进4个空格, 默认是缩进8个空格
系统级别配置文件
/etc/vim/vimrc, 修改了系统级别的配置文件将影响系统下的所有用户.
说明: 由于linux是多用户操作系统, 建议只在用户级别的配置文件下进行修改, 不要影响其他用户.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|编程站点 ( 冀ICP备2023028127号-2 )|友链申请|

GMT+8, 2025-7-2 01:35 , Processed in 0.071622 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表