码迷,mamicode.com
首页 > 系统相关 > 详细

Linux下vi && vim

时间:2015-08-21 13:45:31      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:linux   vi   vim   

vi 下基本分为三种模式一般模式、命令行模式、编辑模式

vi一个文件后进入一般模式在该模式下可以移动光标、复制、粘贴、删除文件数据

一般模式下输入i,I,a,A,o,O,r,R进入编辑模式,可以编辑文本,按下[esc]退出编辑模式进入一般模式

一般模式输入:、/、?进入命令行模式,在命令行模式可以查找、保存、替换、退出等操作


三种模式

一般模式下

光标移动

键盘的上下左右移动光标,num+上下左右移动num行

[page up]:向上翻一页

[page down] :向下翻一页

0 或 home :光标移动到当前行第一个字符

$ 或 end: 光标移动到当前行最后一个字符

H:光标移动到当前页面的第一行

M:光标移动到当前页面的中间行

L:光标移动到当前页面的最后一行

G:光表移动到文本的最后一行

nG:光标移动到文本的第n行

gg:光标移动到文本的第一行

n[Enter]:光标向下移动n行

查找替换

/word:向下查找一个word的字符串

?word:向上查找一个word的字符串

n:重复之前的查找工作

N:与n相反,反向查找上一个需要查找的字符

:n1,n2s/word1/word2/g  :在n1行到年n2行之间使用将word1单词用word2单词替换

:1,$s/word1/word2/g :在第一行和最后一行使用word2替换word1

:1$s/word1/word2/gc:从第一行到最后一行使用word2替换word1,在每个单词替换前让用户确认

删除、复制、粘贴

x,X:x删除当前光标所指的字符,并且是向后移动光标删除的。X删除光标前一个字符,是向前删除的。

nx:向后删除n个字符

dd:删除当前行

ndd:删除光标向下n行

yy:复制光标所在的那一行 

nyy:复制光标向下的n行

p,P:p在当前行的下一行粘贴,P在当前行的上一行粘贴

u:复原前一个操作

[Ctrl]+r:重做上一个操作


一般模式切换到编辑模式

进入插入模式

i,I:i从目前光标所在处插入,I为当前行第一个非空格字符处插入

a,A:从目前光标所在的下一字符插入,A从当前行最后一个字符出插入

o,O:o光标所在的下一行插入,O光标所在的上一行插入

进入替换模式

r,R:r只会替换光标所在的字符,R会一致替换直到按下[ESC]


一般模式切换到命令行模式

:w  将编辑的数据写入到硬盘中(保存)

:w! 强制将编辑的数据写入到硬盘中去(若为只读模式)

:q 离开vi

:q! 曾经修改过,但不想存储,强制离开

:wq 保存并退出

:wq!  强制保存并退出

:w[filename] 将编辑的数据保存成另一个文件

:r[filename] 编辑数据时,将另一个文件中数据添加到光标所在行后面

:n1,n2 w [filename] 将n1到n2行中数据保存到filename文件中

:! command 暂时离开命令行模式执行command命令,之后回来

:set nu 显示行号

:set nonu 不显示行号


vim功能


vim文件恢复功能

当你编辑文件不正常切断的时候会在当前目录下创建一个.filename.swp的暂存文件,当你要在此打开这个文件的时候会提示你是否要恢复之前的操作。O为只读该文件,E是直接编辑,R是恢复之前的修改操作,D是认为这个文件没用删除这个暂存文件,Q是直接退出。操作完之后除了D,需要手动删除这个文件,否则每次会提示你。


vim是vi的高级版,一般vim已经把vi替换掉了。因为vim有颜色提示功能、还支持多种程序语法等。


vim的块选择

v:字符选择,光标移动过得地方会反白

V:行选择,光标移动过得行会反白

[Ctrl]+v:块选择,光标移动过得块会反白

y:将反白的地方复制下来

p:粘贴之前复制的

d:删除反白的地方


vim多文件编辑

vim file1 file2

首先进入file1中进行编辑,输入:n会进入下一文件进行编辑;:N会进入上一个文件编辑;:files会列出vim打开的文件


vim多窗口功能

当打开一个文件的时候,如果让该文件显示多个窗口

:sp 即可

如果多窗口打开不同的文件

:sp [filename]

上下窗口切换[ctrl] +w


vim使用历史记录

如果使用过vim,会在你的主目录下创建一个.viminfo文件,这个文件记录你之前做过的操作。


vim环境设置

在命令行模式下输入set all 可以查看所有vim的设置。可以通过set xx设置,比如 set nu设置显示行号。

这种方式只在当前有效,如果要长期有效需要修改 /etc/vimrc(ubuntu下是/etc/vim/vimrc)来设置我们习惯的vim操作环境,整体的vim设置在这里,但是一般不建议修改这个文件,可以修改 ~./.vimrc这个文件默认是不存在的,可以手动创建

比如:

vim ~/.vimrc

set nu                  "设置行号
set hlsearch            "高亮度反白
set autoindent          "自动缩排
set backspace=2         "可以随时用退格键删除
set ruler               "显示最下面提示
set bg=dark             "显示不同的底色色调
syntax on               "进行语法检查,颜色显示


乱码解决

终端显示乱码原因有很多,Linux支持语系、终端接口语系(用LANG设置)、原文见编码、打开终端的软件如GNOME等,这里有一个方法可以实时,如果文件是big5编码的

LANG=zh_CN.big5

然后终端->设置字符编码->中文(BIG5)


语系编码转换

可以使用iconv(需要下载iconv,然后到该目录下执行命令)然后使用iconv进行语系转换

iconv --list

iconv -f 原本编码 -t 新编码 filename[-o newfile]


版权声明:本文为博主原创文章,未经博主允许不得转载。

Linux下vi && vim

标签:linux   vi   vim   

原文地址:http://blog.csdn.net/colin_yjz/article/details/47829505

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!