vim使用

移动光标
w 向后移,光标移至下一词首
b 向前移,光标移至每一词首
e 向后,光标移至每一词尾
0 移至光标所在行首
$ 移至行尾

'' 两个单引号将光标移到它的先前的位置

12| 将光标定位到当前行的第12列 [ctrl]+f 荧幕向前移动一页
[ctrl]+b 荧幕向后移动一页
f 字符 向后移至字符处,光标在字符处
gg 移至文件开始行
G 移至文件最后一行,3G移至第3行。(g=goto)
H 移至当前窗口内的第一行
M 移至当前窗口内的中间一行
L 移至当前窗口内的最后一行
:set nu 显示行号
:set nonu 不显示行号
删除
x 删除当前光标位置字符
nx 向后删除n个字元
dd 删除光标所在的那一行
d$ 删除从当前字母开始至行尾的所有字符 D
插入
i 进入插入状态可在当前位置进行插入,退出插入状态
a 在当前字母后开始进入插入状态,退出用
p 在当前行后插入刚用dd命令删除的行。即可以用于行的移动
o 在当前行后插入一空行并进入编辑状态
O 在当前行前插入一空行并进入编辑状态
:r 文件名 在当前行后插入此文件内容。

搜索
/ words或words 寻找名为word或words字符串
cw 即先删除当前字母至空格,不包含空格,然后进入插入模式
替换
r 可输入一个字母可替换当前光标的字母
R 可进入替换状态,输入要替的内容后用退出。
cw 即先删除当前字母至空格,不包含空格,然后进入插入模式
:n1,n2s/word1/word2/g 在第n1行与n2行之间寻找到word1这个字串,并将该字串取代为word2
搜索+替换
:s/thee/the 搜索thee并换成the ,注意只搜索第一匹配的内容
:s/thee/the/g 搜索thee并换成the ,注意只搜索并替换一行的内容
:s/thee/the/gc 搜索thee并换成the ,注意只搜索并替换一行的内容,并每次替换都将询问是否
:%s/thee/the/g 搜索thee并换成the ,注意搜索并替换整个文件内容
:10,20s/thee/the/g 搜索thee并换成the ,注意搜索并替换第10行与第20行之间的内容
:1,$s/thee/the/g 搜索thee并换成the ,注意搜索并替换第1行与最后行之间的内容
:ranges/pat1/pat2/g
其中
: 这是vi的命令模式。
range 是命令执行范围的指定,可以使用百分号(%)表示所有行,使用点(.)表示当前行,使用美元符号($)表示最后一行。你还可以使用行号,例如10,20表 示第10到20行,.,$表示当前行到最后一行,.+2,$-5表示当前行后两行直到全文的倒数第五行,等等。
s 表示其后是一个替换命令,类似Perl的替换函数。
pat1 这是要查找并替换的一个正则表达式。
pat2 这是希望把匹配串变成的模式的正则表达式。
g 模式修饰符,表示替换将针对行中每个匹配的串进行重复匹配,不是只匹配行中出现的第一个匹配串。
i 模式修饰符,表示模式匹配时忽略大小写。

反悔
u 恢复最后一个命令的结果
Ctrl-r 反悔的反悔


从shell中启动可视化编辑器
vi filename 指示shell启动vi编辑器,并将参数filename传给它。如果当前目前中存在该文件,则vi编辑器将它解释为要打开的文件;如果没有该文件,则 vi编译器创建新文件
vi file1 file2 file3 shell传递3个参数给vi,vi将它们解释为要打开的文件。可以使用:w命令保存文件,使用:n命令访问下一个文件
vi +# filename 打开文件,并将光标移到指定的行。例如,命令vi +100 records 从第100行开始编辑文件records
vi +/the filename 打开文件,并将光标移动包含有目标字符串的行。例如,命令vi +/Jason friends 从第1个含有字符串Jason的行开始编辑文件friends
view filename 打开文件进行编辑,但是拒绝保存对文件的修改,除非使用w!命令



光标定位命令(上下文的)
fb 将光标向前移到当前行上的下一个字母b(或者其他的任意指定的字符)
Fb 将光标向后移到当前行上的上一个字母b(或指定的字符)
t# 将光标移到当前行上字符#的第1个实例的右侧。例如,命令tM将光标移到当前行上第1个M的右侧
T# 在当前行上向左移动光标,将它移到字符#的第1个实例的前一字符
/word 将光标向前移到单词word的下一个实例
?word 将光标向后移到单词word的上一个实例
n 将光标移到前面命令/word或?word中指定模式的下一个实例
显示调整命令
Ctrl+D 显示文件中的下半屏文本
Ctrl+U 显示文件中的上半屏文本
Ctrl+F 显示文件中的下一屏文本
Ctrl+B 显示文件中的上一屏文本
设置显示选项
:set number 将行号作为屏幕显示的一部分,但是行号并不是文件的一部分。它的缩写形式为:set nu
:set nonumber 清除屏幕上的行号。也可以使用缩写形式:set nonu
:set showmode 在屏幕的右下角显示追加模式信息
:set list 在每行的行末显示美元符号,并用Ctrl+I表示制表符
:set showmatch 在输入)或]时,将光标移到与之匹配的(或[
:set window=value 定义屏幕上显示的文本行的行数
:set autoindent 自动缩进。也可以使用缩写形式:set ai
:set tabstop=value 设置显示制表符的空格字符个数。也可以使用缩写形式ts=value
:set wrapmargin=value 设置显示器的右页边。当输入进入所设置的页边时,编辑器自动回车换行
:set ignorecase 指示编辑器搜索字符串,并忽略目标中字母的大小写
:set 显示设置的所有选项
:set all 显示所有可以设置的选项
文本删除命令
dd 删除当前光标所有的文本行
#dd 删除#行文本
dw 从文本中删除一个单词
#dw 从文本中删除#个单词
x 删除光标所在的一个字符
#x 从文本中删除#个字符
D 删除当前行上光标后面的部分
:#,#d 例如,:12,37d 将删除第12~37行之间的所有文本,包括第12和37行

 

0(零) 将光标移到当前行的行首
^(脱字符) 同0一样将光标移到当前行的行首
$ 将光标移到当前行的行末
##G 将光标移到G前面的数字指定的行。例如,42G将光标移到文件的第42行
G 将光标移到文件的最后一行
- 将光标定位到上一行的行首
+ 将光标定位到下一行的行首

多窗口编辑

1,先开一个文件

2,:sp /etc/enviroment

3,切换 ctrl+w+(korj)

4,全复制 命令模式输入 :r被复制的文件名   

将其中一个文件的内容全部复制到另一个文件中

区域复制

 将游标移动到需要复制的第一行处,按下“ctrl+v“底部状态栏出现“virtualblock“用上下左右方向键进行区域选择

定义快捷键

:map 快捷键 执行命令

:map ^p /#<Esc>                //^p为定义快捷键“ctrl+p“ 在行首添加“#”注释

:r !date                                 //编辑完文件后,在文件末尾导入当前时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值