linux学习笔记--vim程序编辑器
1,在linux系统中使用文本编辑器来编辑自己的linux参数配置文件是一件很重要的事情,因此系统管理员至少应该要熟悉一种文本编辑器。
2,不同的linux distribution各有不同的附加软件,linux命令行界面下的文本编辑器有Emacs,pico,nano,joe与vim
3,学习vim的重要性
(1)所有的UNIX Like系统都内置vi文本编辑器,其他的文本编辑器不一定存在
(2)很多软件的编辑接口都会主动调用vi
(3)vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计
(4)程序简单,编辑速度相当快速
4,vi与vim区别
它们都是多行模式编辑器
vim是vi的高级版本,vim完全兼容vi的敏玲。还加入很多额外的功能。具体没使用过。
5,vi的基本使用
vi一般分为3种模式,一般模式、编辑模式与命令行模式
(1)一般模式
以vi打开一个文件就直接进入了一般模式(默认模式),在这个模式中,你可以使用上下左右按键来移动光标,可以删除字符合删除正行,也可以复制、黏贴
(2)编辑模式
在一般模式中按下“i,l,o,O,a,A,r,R”任何一个字母后会进入编辑模式,
在这个模式下,按下这些按键时,界面左下方会出现INSERT或REPLACE的字样,此时可以编辑,
退出按【Esc】键,退回一般模式
(3)命令行模式
在一般模式下,输入“:、/、?”任何一个字符,就可以将光标移动到最下面的那一行。
在这个模式下,可以提供查找、读取、保存、大量替换字符、离开vi、显示行号等操作。
退出按【Esc】键,退回一般模式
注意:编辑模式和命令行模式之间不可互相切换,tab键所得到的结果与空格符所得到的结果是不一样的。
6,按键说明
第一部分:一般模式可用的按钮说明,光标移动、复制黏贴、查找替换
(1)移动光标的方法
h或向左箭头键 光标向左移动一个字符
j或向下箭头键 光标向下移动一个字符
k或向上箭头键 光标向上移动一个字符
l或向右箭头键 光标向右移动一个字符
注:也可以3j向下移动3次。组合键
【Ctrl】+【f】 屏幕向下移动一页,相当于【Page Down】
【Ctrl】+【b】 屏幕向上移动一页,相当于【Page Up】
【Ctrl】+【d】 屏幕向下移动半页
【Ctrl】+【u】 屏幕向上移动半页
+ 光标移动到非空格的下一行
- 光标移动到非空格的上一行
n<space> 20空格,向后移动20个字符距离
0或者【Home】 移动这一行的最前面字符处
$或者【End】 移动到这一行的最后面的字符处
H 光标移动到当前屏幕的第一行的第一个字符
M 光标移动到当前屏幕的中间那一行的第一个字符
L 光标移动到当前屏幕的最下方那一行的第一个字符
G 光标移动到这个文件的最后一行
nG 光标移动到第n行
gg 光标移动到首行,相当于1G
N【Enter】 光标向下移动n行
/word 向下寻找一个名为word的字符串
?word 向上寻找一个名为word的字符串
n 代表重复前一个查找的操作
N 与n相反,为反向进行前一个查找操作
注:/word配合n及N非常有帮助
:n,ms/word1/word2/g 在第n与m行之间寻找word1字符串,并将word1替换为word2
:1,$s/word1/word2/g 从第一行到最后一行查找word1字符串,并将该字符串替换为word2
:1,$s/word1/word2/gc 从第一行到最后一行查找word1字符串,并将该字符串替换为word2,且替换前让用户确认是否需要替换
(2)删除、复制、黏贴
x,X 在一行字中,x为向后删除一个字符,X为向前删除一个字符
nx 连续向后删除n个字符
dd 删除光标所在的那一行
ndd 删除光标所在的向下n行
d1G 删除光标所在到第一行的所有数据
dG 删除光标所在到最后一行的所有数据
d$ 删除光标所在到该行的最后一个字符
d0 删除光标所在在该行的第一个字符
yy 复制光标所在的那一行
nyy 复制光标所在的向下n行
y1G 复制光标所在行到第一行的所有数据
yG 复制光标所在行行到最后一行的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
p,P p为将已复制的数据在光标的下一行黏贴,P为将已复制的数据在光标的上一行黏贴
(3)移动光标的方法
J 将光标所在行与下一行的数据结合成同一行
c 重复删除多个数据,例如向下删除10行,10cj
u 复原前一个操作
【Ctrl】+r 重做上一个操作
注:u和【Ctrl】+r组合常用
第二部分:一般模式切换到编辑模式的可用的按钮说明
i,I i从光标所在处插入,I为光标所在行的第一个非空格处插入
a,A a为从光标所在的下一个字符处开始插入,A为光标所在行的最后一个字符处开始插入
o,O o为光标所在下一行插入一行,O为光标所在行的上一行插入一行
r,R r只会替换光标坐在的哪一个字符一次,R会一直替换光标所在的文字,知道按下【Esc】
【Esc】 退出编辑模式,回到一般模式
第三部分:一般模式切换到命令行模式的可用的按钮说明
(1)命令行的保存、离开
:w 保存数据
:w! 强制写入文件,保存
:q 离开vi
:q! 曾修改过,又不想保存,使用。强制退出vi
:wq 保存且退出vi
ZZ 若文件没有更改,则不保存离开,若文件已经被更改,则保存后离开
:w[filename] 将编辑的数据保存为另一个文件
:r[filename] 在编辑的数据中,读入另一个文件的数据
:n,m w[filename] 将n到m的内容保存成filename文件
:!command 暂时离开vi到命令模式下执行command的显示结果
:set nu 显示行号
:set nonu 取消显示行号
7,vim的保存文件,恢复与打开的警告信息
(1 使用vim编辑时候,vim会在编辑的文件的目录下再新建一个名为.filename.swp的文件。
例如:
[root@localhost test]# vim vimtest.txt
按下【Ctrl】+z,vim被丢到后台去执行。
[1]+ Stopped vim vimtest.txt
[root@localhost test]# ls -a
. .. .vimtest.txt.swp
模拟断线
[root@localhost test]# kill -9 %1
[1]+ Stopped vim vimtest.txt
[root@localhost test]# ll -a
total 12
drwxr-xr-x. 2 root root 4096 Apr 19 15:23 .
drwxrwxrwt. 9 root root 4096 Apr 19 15:23 ..
-rw-------. 1 root root 4096 Apr 19 15:23 .vimtest.txt.swp
断线后.vimtest.txt.swp文件还存在。再次编辑时候,可以打开.vim.test.txt文件继续编辑
说明:由于vim的工作被不正常中断,导致暂存盘无法通过正常流程结束,所以暂存文件不会消失,而继续保留下来。可以再次编辑。
(2)再次编辑会出现如下状态
[root@localhost test]# vim vimtest.txt
暂存盘的文件,可能有2种情况:
【1】可能有其他人或程序同时在编辑这个文件
解决方法:找到正在编辑文件的人员,请他将vim的工作结束,然后再继续处理
如果只是查看,而不需要编辑,选择o,“[O]pen Read-Only,只读模式。
【2】在上一次vim时,可能因为某些原因导致vim中断
解决方法:如果上一次vim时未保存,按下R,使用[R]ecover的选项,载入.vimtest.txt.swp的内容,离开后还得手动删除.vimtest.txt.swp文件,避免每次打开这个文件都会出现这样的警告
如果确定这个暂存文件没有用,可以按下D,选择【D】elete it 这个选项,直接删除这个.vimtest.txt.swp文件,并且会建立新的swp文件
8,vim的功能
9,块选择 (自己找练习题练习下)
v 字符选择,会将光标经过的地方反白选择
V 行选择,会将光标经过的行反白选择
【ctrl】+v 块选择,可以用长方形的方式选择数据
y 将反白的地方复制起来
d 将反白的地方删除
10,多文件编辑
:n 编辑下一个文件
:N 编辑上一个文件
:files 列出目前这个vim打开的所有文件
11,多功能窗口
:sp [filename] 打开一个新窗口,如加filename,表示在新窗口打开一个新文件,否则表示俩个窗口为同一个文件内容
【Ctrl】+w+j 光标移至下方的窗口
【Ctrl】+w+向下键 光标移至下方的窗口
【Ctrl】+w+k 光标移至上方的窗口
【Ctrl】+w+向上键 光标移至上方的窗口
【Ctrl】+w+q 结束离开
12,vim的环境设置与记录 ~/.vimrc,~/.viminfo
~/.vimrc为环境设置值的文件
~/.viminfo为操作记录的文件
vim环境设置参数
:set nu 就是设置行号
:set nonu 取消显示行号
:set hlsearch 查找字符串反白,高亮
:set nohlsearch 取消高亮
:set autoindent 表示自动缩排
:set noautoindent 取消自动缩排
:set backup 自动备份文件
:set ruler 显示右下角的一些状态说明
:set showmode 显示--INSET--之类的字在左下角的状态栏
:set backspace=(0,1,2) 按下i进入编辑模式后,可以利用退格
:set all 显示目前所有的环境参数设置值
:set 显示与系统默认值不同的设置参数
:syntax on 依据程序相关语法显示不同颜色
:syntax off 关闭
:set bg=dark 可用显示不同的颜色色调,默认是light
:set bg=light
可以修改/etc/vimrc 或者~/.vimrc
本文出自 “完美式_開始” 博客,请务必保留此出处http://7184803.blog.51cto.com/7174803/1413295