分类: LINUX
2015-03-20 17:28:17
原文地址:Vim/vi的使用总结 作者:Super_Joki
Vim/Vi简介
1、Vim/Vi 是一个文本编辑器,多适用在Linux/UNIX系统;
早期是Vi,现在增强版是Vim,但使用的还是Vi的操作。
2、Vim/Vi 没有菜单,只有命令。
3、作用:建立、编辑、显示文本文件。
常用操作
1、Vi有三种工作模式:命令模式、插入模式、编辑模式。
Insert Edit
2、格式:vi + 文件名
说明:如果是已存在此文件,表示打开;如果不存在此文件,表示新建。
3、三种模式的相互切换
3.1 默认进入"命令模式"
3.2 插入模式: 在命令模式下-->进入"插入模式",输入 i 注:一般下面会提示有--INSERT--
退出"插入模式",按ESC键
常用选项:aio
a 在光标后插入文本, A 在本行行末插入文本;
i 在光标前插入文本, I 在本行开始插入文本;
o 在光标下插入新行, O 在光标上插入新行;
3.3 编辑模式: 在命令模式下-->进入"编辑模式",输入:
退出"编辑模式",回车 (其实执行完命令也即进入命令模式了)
常用选项:set number 使文件显示行号(number也可简写成nu)
3.4 命令模式常用命令
***定位***
h (等同于方向左键)左移一个字符
j (等同于方向下键)下移一行
k (等同于方向上键)上移一行
l (等同于方向下键)下移一行
$ 移至行尾
0 移至行首
H 移至屏幕上端(High)
M 移至屏幕中央(Middle)
L 移至屏幕下端(Low)
:set nu 设置行号 //nu是number的简写
:set nonu 取消行号 //no-number
gg 到第一行
G 到最后一行
nG 到第n行 //n是自己输入的行号
:n 到第n行 //与nG作用一样
***删除***
x 删除光标所在处字符
nx 删除光标所在处后n个字符
dd 删除光标所在行
ndd 删除光标后的n行 //注:光标所在的行也算一行
D 删除光标所在处到行尾
dG 删除光标所在行到末尾的内容
:n1,n2d 删除指定范围的行,将n1行到n2行删除
eg,:12,15d //作用是删除12到15行
***复制/剪切***
yy 复制当前光标所在行
nyy 复制当前光标所在以下n行
dd 剪切当前光标所在行(也可以用作删除)
ndd 剪切当前光标所在行以下n行 //注:光标所在的行也算一行
p 粘贴在当前光标所在行下
***替换/取消***
u 返回上一次操作(无限制的返回,前提没有在中途保存)
r 取代光标所在处字符
R 从光标所在处开始替换字符,按Esc结束,不然一直替换后面的字符
***搜索/替换***
/字符串 从光标处开始搜索要查找的字符串
n (next)搜索指定字符串时,按n键跳到下一个符合的字符串
:%s/old/new/g 全文中的字符串old全部替换成new,注意格式,只需改old,new,其他一样
:n1,n2s/old/new/g 将n1行到n2行中所有的old都替换成new
:s/old/new/g 将光标所在行的所有old都替换成new
3.5 保存/退出 : 在命令模式下-->输入 :w 保存(不退出)
:w + 文件路径 另存为
eg::w /work/dir/newfile 注:把当前文件另存为newfile
:wq 保存并退出
:q 退出(用于没有未更改)
:q! 退出不保存(用于文件已更改)
4、常用快捷键
shift + zz 保存并退出 (在命令行模式下)
5、小技巧
:r + 要导入的文件路径 作用:可以把文件导入到该文件所指光标处
:! + 进行一些非Vi指令的操作。 如:ls查看其他目录,date查看日期,等一系列文件操作命令
:r + !+ 进行一些非Vi指令的操作结果 作用:其他指令的操作结果写入到当前文件所指光标处 (不错!)
eg:r !date //把当前查询的日期写入到当前文件
6、多文件编辑
使用命令vim name1 name2 name3...(各个文件名之间用空格隔开)可以同时打开多个文件。
:n 编辑下一个文件;
:N 编辑上一个文件;
:files 列出目前vim打开的所有文件
7、块选择
选取部分内容进行复制粘贴删除很方便(不是以行为单位操作)
v 字符选择(输入v后,下面窗口提示"可视",也即选中了第一个字符,按方向左右键继续选择)
V 行选择
y 复制选中的内容
p 粘贴选中的内容
d 删除选中的内容
8、Vim/Vi的配置(一)(让其显示行号,tab键=4)
方法:1)在用户目录下(cd/或者cd~都能进到用户目录)/home/usr
2)建立一个vimrc的文件(最好隐藏)
vi .vimrc
3)进行编辑,输入内容
set nu //作用:让Vi/Vim打开的文件都能显示行号
set tabstop=4 //作用:在Vi/Vim编辑器,让tab跳至4个间距
4)保存退出
Vim/Vi的配置(二)(若方向键、Backspace键使用时出现乱码)
需编辑:/etc/vim/下的vimrc.tiny文件(在root账户下)
方法:1) 用vi打开vimrc.tiny
将"compatible"改成"nocompatible"非兼容模式就可以解决方向键变ABCD的问题了
2)解决Backspace键问题:
补充一句: set backspace=2
3)保存退出,之后无论哪个用户都可以正常使用
注:如果只想改动该用户下的配置,同上可以在该用户目录下建一个.vimrc
加下面两句语句:set nocompatible //以非兼容模式工作
set backspace=2
保存退出