Linux中的VIM编辑

linux常见编辑器vi vim gedit emacs nano office(openoffice 永中office)

亲密接触vim


任务1:进入当前用户的家目录,查看当前工作路径,在当前目录中用vim创建me.txt文件,输入3行文本,保存并退出vim编辑器。最后用cat查看me.txt文件内容。
[root@sky ~]# cd ~
[root@sky ~]# pwd
[root@sky ~]# vim me.txt

点击这里

点击这里

按i键进入输入模式,然后输入下面的内容 welcome to vim hello vim goodbye 按键盘左上角的Esc键返回到vim的命令模式 输入:wq保存并退出vim编辑器




查看文件内容:
[root@sky ~]# cat me.txt

任务2:清空/tmp目录中的所有文件,用vi在/tmp目录中创建一个文件a.txt,输入3行内容,然后保存并退出,再用cat命令查看文件内容。
[root@sky ~]# rm -rf /tmp/*
[root@sky ~]# vim /tmp/a.txt
i键,进入输入模式
welcome to vim editer
thank you
goodbye
按键盘左上角的Esc键,退回到命令模式
输入:wq保存退出。这是vi的末行模式(也称尾行模式)。
[root@sky ~]# cat /tmp/a.txt

vim的高级用法
文件的打开

1.直接打开
cd /tmp
vim a.txt

2.启动后直接跳到行尾(+)
vim + a.txt
3.启动时按照模式匹配(+/pattern) 跳到包含关键字的行
vim +/to a.txt

4.vim模式分类? 如何切换? 
命令模式:按Esc进入此模式,用于执行vim自带的一些命令,例如i进行插入模式,yy复制,p粘贴,dd删除一行。
编辑模式:在vim的命令模式下用i、a、o进入此模式,用于编辑文件的正文内容。
尾行模式:在vim的命令模式下用:或/进入此模式,用于执行显示行号:set nu,保存:w,保存并退出:wq,不保存退出:q等尾行模式命令。

从编辑模式或尾行模式切换到命令模式都是用Esc键。



passwd文件中的前9行内容覆盖写入到/tmp/pa.txt文件中,然后用vim打开,执行下面的命令快捷键操作。
head -9 /etc/passwd > /tmp/pa.txt
vim /tmp/pa.txt


5.命令模式快捷键光标定位
----------------------------------了解-------------------------------
单词
w/e 按单词往光标所在位置的右边移动 w移到下一个单词词首 e是到单词的词尾
b: 跳至当前单词的左边单词的词首

字符
h 光标向左移动←
j 光标向下移动↓k 光标向上移动↑l 光标向右移动→

翻屏(命令模式)
ctrl+f 前翻页,f是front
b 后翻页,b是back

dG 删除光标所在行到尾行(文件的最后一行)
dgg 删除光标所在行到首行(文件的第1行)
u 撤消操作
-----------------------------------------------------------------------------行首 行尾
G 光标移动到文本尾行
gg 光标移动到文本行首
0或^或home 光标移动到行首
$或end 光标移动到行尾
如何定位至指定行?
尾行模式 :5 光标到第5行
命令模式(复制、粘贴、删除)
dd 删除(剪切)光标所在行
ndd 删除(剪切)光标所在行及以下n行,例如3dd
yy 复制光标所在行
nyy 复制光标所在行及以下n行,例如3yy
p 粘贴光标所在行下一行
r 替换光标所在字符(一次替换)
R 替换模式,ESC退出替换模式(连续替换)
d$ 删除光标所在位置到行尾 包含光标 等同于D

d^ 删除光标所在位置前的内容到行首 不包含光标
dw 删除光标所在位置的单词

3dw 删除从光标开始的位置到后面三个单词
delete 删除字符(以字符为单位从左往右删除) 等同于x
2x 删除光标所在后2个字符(包含)
2X 删除光标所在前2个字符
u 撤销之前操作
ctrl+r 反撤销
ZZ(命令模式) 保存,等同于:wq


查找(命令模式)
/关键字 例如/sbin,然后用n继续查找下一个,N继续查找上一个


-------------------------------------------------------------------编辑模式(输入模式) 
a 光标所在位置后插入
i 光标所在位置前插入
o 光标所在行下一行另开一行插入

A 光标所在行行尾插入
I 光标所在行行首插入
O 光标所在行上一行插入
---------------------------------------------------------------
尾行模式(末行模式)

保存 退出(w/q/x)
:6 光标定位到第6行
:q 正常退出
:q! 强制退出
:w 保存
:wq 保存并退出
:wq! 强制保存并退出
:x 保存并退出
:10,13d删除10-13行
.,$d 表示从光标所在位置删除到结尾(包含光标所在行)
.,+5d 表示删除从当前行开始算起的后面连续5行
g/#/d 删除包含#的行 例如,删除包含root的行:g/root/d


替换substitute:s/This/THIS/ 把光标所在行的This替换为THIS,仅替换找到的第1个
:s/This/THIS/g 把光标所在行所有This替换为THIS
:%s/This/THIS/g 把全文This替换为THIS
:2s/This/THIS/g 把第2行的整行中包含This的替换为THIS
:2,3s/This/THIS/g 把第2-第3行的整行中包含This的替换为THIS
:%s/This/THIS/gi 把全文的This替换为THIS忽略大小写

vim必须熟练的内容:
1、 用vim创建文件,输入内容,并保存退出。
2、 yy复制、p粘贴、d删除、u撤消、光标定位(方向键、0、^、$、G、gg)
3、 /查找、s替换
4、 显示行号:set nu

调用外部命令 
:!date 查看系统时间

:!ls /home 临时执行指定的命令
:r /etc/passd 把/etc/passwd的内容读入到当前的文本
:w /opt/a.txt 把当前文本的内容另存到/opt/a.txt里面
:.,+3w >> /opt/a.txt 把从当前行,当前行的后3行追加到/opt/a.txt
:10,13w >> /opt/a.txt

分屏(ctrl+w)
sp/vsp

撤销u
ctrl + r

set nu设置行号
set number设置行号
set list 显示特殊字符
set nolist 取消显示特殊字符
set ic(ignorecase 的缩写) 忽略大小写
set noic(noignorecase 的缩写)
set all 显示目前所有设定值内容
set autoindent(ai) 自动缩进
set hlsearch设置查找高亮
set nohlsearch取消查找高亮
syntax on 设置语法高亮
syntax off 关闭语法高亮
可视模式
可视块(ctrl+v)
使用光标定位所需要插入注释的列--->ctrl+v -----》 -----> I ---》# ---》esc
可视模式(v)
可视行 V)

vim编辑器的多文档编辑功能:

点击这里

点击这里

进入/tmp目录 以水平分割窗口编辑多个文件

cd /tmp vi -o(小写o) a.txt b.txt c.txt d.txt


ctrl+w松手后用↑↓← →方向键在文件窗口中切换


在a.txt中输入ni hao这行文字,然后复制,并粘贴


将光标分别移到b.txt、c.txt、d.txt文件中,粘贴


用:wq依次保存这些文件


用nl查看文件内容


vim编辑器的多文档编辑功能:

点击这里

点击这里

进入/tmp目录 以垂直分割窗口编辑多个文件

cd /tmp vi -O(大写O) a.txt b.txt c.txt d.txt


ctrl+w松手后用↑↓← →方向键在文件窗口中切换


在a.txt中输入hello这行文字,然后复制,并粘贴


将光标分别移到b.txt、c.txt、d.txt文件中,粘贴


用:wq依次保存这些文件


用nl查看文件内容

 

点击这里

执行以下任务

1、 将passwd文件中的前5行内容覆盖写入到/tmp/pk.txt文件中。用nl命令查看文件内容。

2、用vim打开/tmp/pk.txt文件,用:set nu显示行号,然后用yy复制第1行内容,用G将光标移到文件的最后一行,用p粘贴。用:3将光标移到第3行,用dd删除第3行内容。

3、用:%s/sbin/SBIN/g将文档中所有sbin替换成SBIN。用:g/root/d删除文件中包含root关键字的内容。







自定义
/etc/vimrc全局配置文件 对所有用户生效
set nu
set ic
syntax on
set ai

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936 设置Vim支持字符编码,utf-8表示支持中文
~/.vimrc 局部配置文件针对当前用户有效
vim /home/redhat/.vimrc
乱码问题
1.在Vim中可以直接查看文件编码 :set fileencoding
2.如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在
~/.vimrc 文件中添加以下内容:set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936
vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件)
其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。
文件编码转换方式
1.在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式:set fileencoding=utf-8

2. iconv 转换,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
iconv -f GBK -t UTF-8 abc -o /home/abc.txt 将GBK编码的文件转换为UTF-8

windows下默认字符集为GBK linux默认的字符集为UTF-8

 


猜你喜欢

转载自blog.51cto.com/14253109/2367174