vi
安装vim
Ubuntu默认安装的是轻量的vim所以即便打开的页面差不多,但是使用起来简直和vi一样不好用,所以,请务必$sudo apt-get install vim
一下
打开vim
$vi filename
如果文件路径不存在,则使用vi在相应路径创建文件,
如果文件路径已存在,则使用vi打开该文件
如果缺省文件路径,则表示在当前目录下创建一个文件,可以创建完再进入ExMode使用:file file_name
命名。
打开时光标会自动在第一行开头
$vi +n filename
打开文件时光标在指定行的开头
$vi + filename
打开文件时光标在最后一行开头
vim四种模式
Vim只能在terminal中使用,有四种工作模式,一种工作模式对应一组功能,所以,任何时候只能处于一种工作模式下
NormalMode 下可以 执行简单命令,刚刚启动vim的时候就处于该模式
InsertMode 下可以 修改文字内容,在NormalMode下按i
等进入,按ESC
退出该模式至NormalMode
ExMode 下可以 执行复杂命令,在NormalMode下按:
进入,使用完自动退出该模式至NormalMode
VisualMode 下可以 进行选区并编辑,在NormalMode下按v
进入逐个字符选择,按V
进入逐行选择,按Ctrl+v
进入块选择,使用完自动退出该模式至NormalMode
vim命令
在文件中移动光标
h
:向左移动一个字符
l
:向右移动一个字符
j
:向下移动一行
k
:向上移动一行
^
:移动到当前行的开头处
$
:移动到当前行的结尾处
H
:使光标移动到屏幕的顶部
M
:使光标移动到屏幕的中间
L
:使光标移动到屏幕的底部
Ctrl+b
:上滚一屏。
Ctrl+f
:下滚一屏。
Ctrl+d
:下滚半屏。
Ctrl+u
:上滚半屏。
撤销与重复
u
:撤销
U
:撤销对一行的修改(仅在光标还在该行才有效)
CTRL+r
:撤销修改
.
:重复某个命令
复制剪切粘贴
Vim里没有删除,剪切了不粘贴就是"删除"
yy
:复制一行到剪贴板
x
:剪切光标所在字符
X
:剪切左侧字符(和直接在InsertMode里按Backspace一样,主要用于进入ExMode后的剪切,此时为了删除一个字符退回InsertMode很麻烦)
dd
:剪切一行
ndd
:剪切多行
dw
:剪切一个词(以 ;,+等符号区分)的“光标所在 ”部分
D
:剪切一行的“光标所在” 部分
d0
:剪切一行的“<光标所在”部分
dG
:剪切整个文件的“光标所在行”部分
p
:粘贴剪贴板的内容
查找
/
:查找</>后的要查找的字符串
n
:跳转到该串的下一个出现处
N
:跳转到该串的上一个出现处
插入文本
a
:在光标的右边插入文本
A
:在一行的结尾处添加文本
i
:在光标的左边插入文本
I
:在行首插入文本
o
:在当前光标位置下面打开一行
O
:在当前光标位置上面打开一行
替换
:s/old/new
:替换该行第一个“old”为“new”
:s/old/new/g
:替换该行所有的“old”为“new”
:#,#s/old/new/g
:替换两行内所有的“old”为“new”
:%s/old/new/g
:替换文件内所有的“old”为“new”
:%s/old/new/gc
:替换文件内所有的“old”为“new”时逐项向用户确认待替换项
:noh
:取消选中状态
简单设置vi
:set nu(mber)
:显示行号
:set nonu(mber)
:取消显示行号
:set showmode
:显示用户模式
:set readonly
:设置文件只读
片选并编辑
v
:按字符选
V
:按行选
Ctrl v
:按块选
y
:复制选区
d
:剪切选区
p
:粘贴选区
保存与退出
shift+zz
:保存 退出
:wq
:保存 退出
:w
:保存 不退出
:q!
:不保存 退出
!
:强制退出
垂直分屏
$vi -On filename_1 filename_2 filename_3
:vsp filename2
Ctrl+w+w
切换编辑的区域
高亮
gd
:高亮当前单词
进制查看
:%!xxd
将当前文本转换为16进制格式。
:%!od
将当前文本转换为16进制格式。
:%!xxd -c 12
将当前文本转换为16进制格式,并每行显示12个字节。
:%!xxd -r
将当前文件转换回文本格式