Linux笔记——vim常用操作及扩展补充[手册]
来源:互联网 发布:列宁格勒号驱逐舰数据 编辑:程序博客网 时间:2024/06/07 07:31
列表:
Linux笔记——vim常用操作及扩展补充[手册]
Linux笔记——linux常用命令集合
Linux笔记——命令:awk
Linux笔记——命令:sed
Linux笔记——命令:grep
Linux笔记——命令:find
Linux笔记——命令:Sort,uniq,join,cut,paste,split
Linux笔记——shell基础:变量&本地变量&位置变量&特定变量参数
Linux笔记——条件测试test
Linux笔记——控制流
Linux笔记——shell补充:参数传递&函数等
Linux笔记——正则表达式入门及应用
Linux笔记——linux进程
Linux笔记——SVN命令总结
rpm&yum包管理命令总结
鉴于博客,表格&排版&颜色标记等等无法显示,大家可以下载这个笔记的资源
12个文档,不需要积分,以目录+表格+颜色标记形式
下载资源地址http://download.csdn.net/detail/wklken/3815477
The end! Thx! wklken的笔记
-----------------------------------------------
目的: 快速熟悉 or 复习 vim操作
学东西需要循序渐进,不断总结
版本1.0
录入时间2011.6.18
版本2.0
修改及补充 2011.7.4-2011.7-29
版本3.0
使用三个月后再次整理,补充一些常用且遗漏的命令等 2011.11.18
资料来源:手册+网络+书籍
以下是全文,可做训练稿用,也可作为手册用。
命令
1.打开文件操作... 1
2.存储及退出文件... 2
3.模式转换... 2
4.光标移动... 3
5.插入... 4
6.删除... 4
7.复制和黏贴... 5
8.查找... 5
9.替换... 6
10.编辑多个文件... 6
11.其他命令... 6
12分屏操作... 7
13 vim的帮助指令... 9
1.打开文件操作
vi
进入vi而不读入任何文件
vi filename
进入vi并读入指定名称的文件(新、旧文件均可)。
vi +n filename
进入vi并且由文件的第几行开始。
vi + filename
进入vi并且由文件的最后一行开始。
vi +/pattern filename
打开文件,并将光标置于第一个与pattern匹配的串处
vi filename....filename
打开多个文件,依次进行编辑
vi -r filename
在上次正用vi编辑时发生系统崩溃,恢复filename
vimdiff fileA fileB
比较编辑两个不同的文件
2.存储及退出文件
:wq 或者 :x
存文件,并且退出vi.
:q
不作任何修改并退出vi。
:q!
放弃任何修改并退出vi。
:w
保存当前文件
:w filename
存入指定文件,相当于另存为,但未退出vi(若未指定文件名则为当前工作的文件名)【保存,另存为】
:n1,n2 w ! command
将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入【注意空格】例如 :1,4 w! grep tom
:!command
暂时退出vi并执行shell指令,执行完毕后再回到vi。【后期应该有用】
:r!command
将命令command的输出结果放到当前行【强大】
:sh
暂时退出vi到系统下,结束时按Ctrl + d则回到vi。
:e filename
打开文件filename进行编辑[相当于退出当前的并打开另一个文件]
:e!
放弃修改文件内容,重新载入该文件编辑
:w !sudo tee %
以普通用户身份打开的vim ,修改后以root身份保存
3.模式转换
1) 命令行模式commandmode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
a i o 进入插入模式
:进入底行模式
2) 插入模式(Insertmode)
只有在Insert mode下,才可以做文字输入
按「ESC」键可回到命令行模式。
3) 底行模式(lastline mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
4.光标移动
行
0
移到当前一行的开始[Home]
$
移到当前一行的最后[End]
k
光标上移一行
j
光标下移一行
Enter
光标下移一行
n+
光标下移n行【按上档键 数字shift +】
n-
光标上移n行
G
移到文件的最后一行
nG或者:n
移到文件的第n行
gg
移动到文档的开始
[[
文件开始位置——开始行
]]
文件结束位置——末尾行
H
光标移至屏幕顶行 HEAD
M
移到屏幕的中间行开头 Middle
L
移到屏幕的最后一行 LAST
(
光标移至句首
)
光标移至句尾
字符 默认1,可加n
h
光标左移一个字符[回退键Backspace]
l
光标右移一个字符[空格键Space]
单词 默认1,可加n
w
光标跳到下个word的第一个字母 [常用]
W
移到下一个字的开头,忽略标点符号
b
光标回到上个word的第一个字母
B
移到前一个字的开头,忽略标点符号 BACK
e
光标跳到下个word的最後一个字母
E
移到下一个字的结尾,忽略标点符号 END
段落
{
移到段落的开头
}
移到下一个段落的开头
屏幕
Ctrl+u
向文件首翻半屏up
Ctrl+d
向文件尾翻半屏down
Ctrl+f
向文件尾翻一屏 forward
Ctrl+b
向文件首翻一屏back
5.插入
i
在光标前开始插入字符 insert
I
在当前行首开始插入字符
a
在光标位置后开始加字 append
A
在光标所在行的最后面开始加字
o
在光标下加一空白行并开始加字 open
O
在光标上加一空白行并开始加字
r
替换当前字符
R
替换当前字符及其后的字符【当前及其后字符被覆盖】
s
从当前光标位置处开始,以输入的文本替代指定数目的字符【默认删除光标所在字符,输入内容插入之】
S
删除指定数目的行,并以所输入文本代替之【默认删除当前行内容,输入内容作为当前行新内容】
6.删除
字符
nx
删除由光标位置起始后的n个字符(含光标位置,按一个x表示删除光标所在的字符)
nX
删除由光标位置起始前的n个字符(含光标位置,按一个x表示删除光标所在的字符)
d0
删至行首
d$
删至行尾
d回车
删除2行【包括光标一行】
单词
ndw
删除光标处开始及其后的n-1个字
ndb
删除光标处开始及其前的n-1个字
行
ndd
删除当前行及其后n-1行
:n1,n2 d
将 n1行到n2行之间的内容删除
【删除就是剪切,它会覆盖之前复制的内容】
删除并进入输入模式
cw
删除当前字,并进入输入模式
ncw
删除当前字 及其后的n-1个字,并进入输入模式
cc
删除当前行,并进入输入模式
ncc
删除当前行 及其后的n-1行,并进入输入模式
7.复制和黏贴
nyl
复制n个字符
yw
复制一个单词
y$
复制从当前位置到行尾
yG
复制从所在行到最后一行
nyy
将光标所在位置开始的n行数据复制暂存
复制选择的很多行:先使用V进入visual 模式,然后j向下移动到你想复制的行为止,然后y
p
复制暂存数据在光标的下一行
P
复制暂存数据在光标的上一行
:n1,n2 co n3
将n1行到n2行之间的内容拷贝到第n3+1行【n3行的下一行】
:n1,n2 m n3
将n1行到n2行之间的内容移至到第n3行下
J
把下一行的数据连接到本行之后
8.查找
/pattern
从光标开始处向文件尾搜索pattern
?pattern
从光标开始处向文件首搜索pattern
n
在同一方向重复上一次搜索命令
N
在反方向上重复上一次搜索命令
#
查找当前光标所在位置的单词
相当于?word
*
查找当前光标所在位置的单词
相当于/word
%
查找对应的( [ { 匹配
9.替换
:s/p1/p2/g
将当前行中所有p1均用p2替代
:s/p1/p2/c
查找替换要求确认
:n1,n2s/p1/p2/g
将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/option
将文件中所有p1均用p2替换
option=g表示文件中所有的text1均被取代,若未输入任何option,则只有各行中的第一个出现的text1被取代
option=go 在屏幕显示各取代的行
option=gc 在每个字串取代之前要求确认
:%s/p1/p2/g
全局,使用p2替换p1
:%s/p1/p2/gc
替换前询问
其中s为substitute,%表示所有行,g表示global
10.编辑多个文件
:r filename
将指定文件的内容读入光标所在行下
:args
显示编辑名单中的各个文件名
:n
读入编辑名单中的下一个文件
:rew
读入编辑名单中的第一个文件
:e#
读入编辑名单内的前一个文件
:e file
读入另一个文件进vi(此文件可不在编辑名单内),若原文件经修改还没有存档,则应先以: w 存档。
:e! file
强迫读入另一个文件进入vi,原文件不作存档动作。
:e
放弃当前一切修改,重新载入文件
11.其他命令
.
重复前一指令
u
取消前一指令
:u
撤销前一次的操作
V
进入visual 模式【ESC】退出
多行选中模式
Ctrl + r
恢复【只对u有效】
Ctrl + l
刷新屏幕显示
Ctrl+v
然后 ctrl+A是^A
Ctrl+I是\t
输入特殊字符
Ctrl+v
然后用j、k、l、h或方向键上下选中多列,之后 I I a A r x等,最后按esc,生效
Vim列操作
:set number
简写 :se nonum
显示文件的行号,但不会存文件
:set nonumber
简写:se num
解除行号显示
:set list
显示制表位(Ctrl+I)和行尾标志($)
:set nolist
:set ai
设置每行起始位置(以光标当前位置为起始)
:set noai
取消行起始位置设定
:f 或<Ctrl> + g
告诉用户有关现行编辑文件的数据
:se wrap
将超出屏幕行分多行显示
【set 可以简写为se】
附录:set的所有选项
all
列出所有选项设置情况
term
设置终端类型
ignorance
在搜索中忽略大小写
list
显示制表位(Ctrl+I)和行尾标志($)
与nolist对应
查看不可打印字符(Tab和空格屏幕打印是没区别的,加上它就有区别了)
number
显示行号,nonumber隐去行号
设置行号/不要行号::set number / :set nonumber
report
显示由面向行的命令修改过的数目
terse
显示简短的警告信息
warn
在转到别的文件时若没保存当前文件则显示NO write信息
nomagic
允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan
禁止vi在搜索到达文件两端时,又从另一端开始
mesg
允许vi显示其他用户用write写到自己终端上的信息
12分屏操作
分屏启动Vim
vim -On file1 file2 ...
使用大写的O参数来垂直分屏
vim -on file1 file2 ...
使用小写的o参数来水平分屏。
注释: n是数字,表示分成几个屏【只会出现n屏,后面跟多了文件不会显示】
分屏
Ctrl+W s
上下分割当前打开的文件
Ctrl+W v
左右分割当前打开的文件
:sp filename
上下分割,并打开一个新的文件
:vsp filename
左右分割,并打开一个新的文件
关闭分屏
Ctrl+W c
关闭当前窗口【关闭不了最后一个】
Ctrl+W q
关闭当前窗口,如果只剩最后一个了,则退出Vim
:qa
退出vim,并关闭所有屏
:wqa
保存所有分屏并关闭
移动光标
要在各个屏间切换,只需要先按一下Ctrl+W
Ctrl+W l
把光标移到右边的屏
Ctrl+W h
把光标移到左边的屏中
Ctrl+W k
把光标移到上边的屏中
Ctrl+W j
把光标移到下边的屏中
Ctrl+W w
把光标移到下一个的屏中
移动分屏
这个功能还是使用了Vim的光标键,只不过都是大写。当然了,如果你的分屏很乱很复杂的话,这个功能可能会出现一些非常奇怪的症状。
Ctrl+W L
向右移动
Ctrl+W H
向左移动
Ctrl+W K
向上移动
Ctrl+W J
向下移动
屏幕尺寸
下面是改变尺寸的一些操作,主要是高度,对于宽度你可以使用Ctrl+W <或是>,但这可能需要最新的版本才支持。
Ctrl+W =
让所有的屏都有一样的高度
Ctrl+W +【shift +=键】
增加高度
Ctrl+W -【shift –键】
减少高度
13 vim的帮助指令
Vim 拥有一个细致全面的在线帮助系统,进入帮助
启动
<HELP> 键 (如果键盘上有的话)
<F1>键(如果键盘上有的话)
:help<回车>
:help command<回车>
例如:help w <回车>
:help insert-index <回车>
退出
:q <回车>
补充两张图:
- Linux笔记——vim常用操作及扩展补充[手册]
- linux vim 常用操作笔记
- Linux 常用操作及vim编辑
- Linux VIM 常用操作
- linux vim常用操作
- linux vim 常用操作
- vim使用笔记01——常用模式与操作
- linux——vim最常用的操作
- linux 最常用编辑器 —— vim 基本操作
- linux常用操作命令手册
- Linux Shell脚本与Vim常用操作笔记
- Linux笔记--vim的基本常用操作总结
- C#学习笔记(补充)——扩展方法、事件
- linux命令vim常用操作
- Linux之vim常用操作
- Vim实战手册——常用的状态切换按键
- Vim实战手册(4)常用编辑操作按键
- Vim实战手册(5)常用多缓冲区操作按键
- C#事件与委托的关系【使用】
- postgre数据库与.net
- Customize your JAXB bindings
- 使用platform密钥来给apk文件签名的命令
- 飞行棋
- Linux笔记——vim常用操作及扩展补充[手册]
- Oracle BIEE开发入门(更新完毕)
- MVT定制HTC Desire HD(G10 DHD) 2.3.5 Sense3.5 ROM
- DSP学习的三个阶段
- 1286. Pascal Library
- C# 方法参数
- Telerik RadAsyncUpload Event OnFileUploaded
- IOS 小技巧积累(持续更新)
- struts的简单工作原理