作者:拍友2502926823 | 来源:互联网 | 2023-09-17 17:35
vim-vi增强版。文本编辑器格式:vim[options][file..]说明:如果file存在,文件被打开并显示内容,如果文件不存在,当编辑后第一次存盘时创建它[o
vim - vi扩展版。 文本编辑器
格式: vim [options] [file .]
说明:如果文件存在,将打开该文件并显示其内容。 如果文件不存在,将在编辑后第一次保存到磁盘时创建
[选项]一般选项:
vim [num] :直接进入编辑文件的第num行
vim :直接进入最后一行
vim /PATTERN :模式PATTERN直接跳转到第一个匹配的行
vim -m :以只读方式打开文件
vim-d文件1文件2 .打开和编辑多个文件
虚拟机的三种模式:
命令模式:默认模式、光标移动、文本剪切/粘贴等
输入(编辑)模式:修改文本
最后一行(扩展)模式)保存、退出、检索等
模式切换:
1、命令式to输入模式
I :在当前光标所在的位置输入:
I :光标当前所在行的开头
a :在光标所在位置的后面输入
答:在光标当前所在行的行尾输入
o :在光标所在行的下方添加空行的输入
o :在光标所在行的上方添加空行输入
2、输入模式至指令模式:
按ESC键
3、指令模式to末行模式:
键
4、最后一行模式to命令模式
按ESC键两次
命令模式的常规快捷键
1、光标移动
字符间跳转:
(h )左)右)下) k )上
#[h | l | j | k ] :跳#个字符
单词键跳
w :跳到下一个单词的开头
b :跳到当前或上一个单词的开头
e :当前或下一个单词的词尾
当前页面跳转:
h :当前屏幕的顶部
l :当前屏幕的底部
zt :将光标所在的行移动到屏幕顶部
zz :将光标所在的当前行移动到屏幕中央
zb :将光标所在的行移动到屏幕底部
内联移动:
0 :数字0绝对行头
^ :第一个非空白字符
$ :绝对行尾
行距移动:
#G跳至#行
#gg跳至#行
g :最后一行
1g :第一行
g :第一行
语句之间的移动:
) :
(
在段落之间移动:
{
}
翻页操作:
Ctrl f :向文件末尾翻页
Ctrl b :向文件的开头翻画面
Ctrl d :向文件末尾半屏
Ctrl u :朝文件开头翻半个画面
2、编辑操作
文字编辑
或DEL键:删除光标所在的字符
#x :删除从光标所在处开始的#个字符
xp:交换光标所在的字符和之后的字符的位置
~ :大小写转换
j :删除当前行末尾的换行符
替换命令:
r )通过替换光标所在的字符,输入一个字符进行替换,可以用于单词拼写错误
切换到替换模式
删除命令
d :删除命令
与各光标跳转指令组合使用
d$ :删除光标所在位置到行尾的所有字符,包括光标所在的字符
d^ :将光标位置删除到行首的所有字符。 不包括光标。
d0 :删除在行首
dw :删除到后面第一个单词的开头
de :删除到后面第一个单词的词尾
数据库:删除到前面第一个单词的开头
DD :删除一行
#dd :删除光标所在位置的下n行
dG :在文档末尾删除
dgg :在文档开头删除
(c )变更、删除后,直接进入插入模式
c$ :删除光标所在位置到行尾的所有字符。 也包括光标所在的字符
c^ :将光标位置删除到行首的所有字符。 不包括光标。
c0 :删除到行首
抄送:删除一行
#cc :删除光标所在位置的下n行
y:yank,复印
YY :复制一行
#YY:# :复制行
p :用p:paste、yy复制的,或者用dd粘贴删除的
复制或删除的是整行
p :粘贴在光标所在行的下方
p :粘贴在光标所在行的上方
复制或删除的是非整数行
p :粘贴在光标所在字符的后面
p :粘贴在光标所在的字符之前
撤消编辑:
u :还原
#u
u :将光标置于此行后,撤消此行的所有更改
撤消:
Ctrl r是与u相反的意思
重复前面的命令:'.'
>重复签一个操作N次:"N."
命令模式特殊用法:
100iwang[ESC]粘贴“wang”100次
Command:
y复制、d删除、gU变大写、gu变小写
例如:0y$命令意味着:
0->先到行头
y->从这里开始拷贝
$->拷贝到本行最后一个字符
ye从当前位置拷贝到本单词的最后一个字符
di "光标在" "之间,则删除这行中" " 之间的内容,可以是多种符号" ' () [] {} 等等
yi 光标在()之间,则复制()之间的内容
vi[ 光标在[]之间,则选中[]之间的内容
dtx 删除字符直到遇见光标之后第一个x字符
ytx 复制字符直到遇见光标之后的第一个x字符
末行模式(扩展模式):
1、范围定界
:start,end
# 具体第#行,例如2表示第二行
1,2 第1到第2行
10,19 10到19行
10,+9 从第10行向后走9行
. 表示当前行
$ 最后一行
$-1 倒数第二行
/pat1/,/pat2/ 第一次被pat1匹配到的行,到第一次被pat2匹配到的行
#,/pat/ 从#行开始到第一次被pat匹配到的行
%全文
注意:如果不用地址定结符,只检查光标所在行
编辑命令:
d 删除
y 复制
w /path/to/somewhere :将范围内的行另存至指定文件中
r /path/to/somefile:把somefile文件内容插入到地址定界后面
例如 10r xxx 将xxx文件插入到第十行后面
!command 执行命令
r !命令 #将命令执行结果插入,如 r !hostname 将hostname执行结果插入进入文档
2、查找
/PATTERN:从当前光标所在处向文件尾部查找
?PATTERN:从当前光标所在处向文件尾部查找
n:与命令同方向
N:与命令反方向
3、*查找替换:
:地址定界s/查找模式(正则)/替换为内容/gi
要查找的内容:可使用模式
要替换的内容:不能使用模式,但是可以使用\1,\2 等后向引用副号;还可以使用&引用前面查找到的整个内容
修饰符:
g:全局替换,一行中出现多次也替换
gc:全局替换,每次替换前询问
i:不区分大小写
&:用于在替换为的内容部分中引用前面匹配到的所有内容
定制vim工作特性:
配置文件:永久有效
全局:/etc/vimrc
个人:~/.vimrc
扩展模式:当前vim进程有效
(1) 行号
显示:set number, 简写为set nu
取消显示:set nonumber, 简写为set nonu
(2) 忽略字符的大小写
启用:set ic
不忽略:set noic
(3) 自动缩进
启用:set ai
禁用:set noai
(4) 智能缩进
启用:smartindent简写set si
禁用:set nosi
(5) 高亮搜索
启用:set hlsearch
禁用:set nohlsearch
(6) 语法高亮
启用:syntax on
禁用:syntax off
(7) 显示Tab和换行符^I 和$显示
启用:set list
禁用:set nolist
(8) 文件格式
启用windows格式:set fileformat=dos
启用unix格式:set fileformat=unix
简写:set ff=dos|unix
(9) 设置文本宽度
set textwidth=65 (vimonly)
set wrapmargin=15
(10) 设置光标所在行的标识线
启用:set cursorline,简写cul
禁用:set no cursorline
(11) 复制保留格式
启用:set paste
禁用:set nopaste