您的位置:首页 > 运维架构 > Linux

linux文本编辑器-VIM基本使用方法

2017-05-04 13:18 721 查看
vim [OPTION]... FILE...

+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
vim + file 直接打开file,光标在最后一行

三种主要模式:

命令模式:移动光标,剪切粘贴等

插入模式:编辑,修改文本

扩展模式:保存退出等



模式转换:

a 在光标后插入内容

A 在光标所在行末尾插入内容

i 从当前光标前插入内容

I 在光标所在行行首插入内容

o 在当前光标下插入空行

O 在当前光标上插入空行

插入模式-->命令模式 esc

命令模式-->扩展模式 :、?、/

扩展模式-->命令模式 esc

vim的打开与退出:

vim file 若file存在则打开file,若file不存在则新建file

命令模式光标跳转:

字间跳转:

h: 左 、 l: 右 、 j: 下 、 k: 上 (支持上下左右键)

单词间跳转:

w :下一个单词的词首

e :当前或下一单词的词尾

b :当前或前一个单词的词首

行内的跳转:

Home ^ 将光标跳转到本行的行首

End $ 将光标跳转到本行的行尾

0 跳转到绝对行首

行间的跳转: (#代表任意数字)

1G=gg 跳转到文件的首行

G 跳转到文件的尾行

#G 跳转到文件的#行(命令模式)

:# 跳转到文件的#行(末行模式)

    句间移动:

) :下一句 ( :上一句

段落间移动:

}: 下一段 {:上一段

当前页跳转:

H:页首、 M:页中、 L:页低

翻页移动:

PgDn Ctrl+f 向下翻一页

PgUp Ctrl+b 向上翻一页

扩展模式基本操作:

:q 退出

:q! 强制退出

:w 保存

:wq 保存退出 = ZZ = :x

:X 加密

:wq! 强制保存退出

:! 命令 在vim中执行外面命令

:e file 编辑file

:w file 将当前文件另存为file

:r file 读入file文件的内容

$1$yyzOv8eO$a0q8BUF80SGcJTy8hx0hy/

:r!openssl passwd -1     ##扩展模式使用外面命令生成加密字符串读入到文件中


命令模式字符编辑:

x 删除光标处的字符;

#x 删除光标处起始的# 个字符

xp 交换光标所在处的字符及其后面字符的位置

~ 转换大小写

r 替换光标所在处的字符

    R 进入替换模式

d 删除命令,可结合光标跳转字符,实现范围删除;

d$ 删除到行尾

d^ 删除到非空行首

d0 删除到行首

dd 删除光标所在行

#dd 删除#行

    dG 删到尾行

    dgg 删到首行

yy 复制当前光标所在行,(支持y$、y0、y^等)

#yy 复制当前光标向下#行

p 粘贴

c 修改,(支持y$、y0、y^等)

J 合并当前行和下一行

u 取消最近一次的操作,能多次使用

U 取消当前行所有的操作

ctrl+r 对使用u命令撤销操作进行恢复

. 重复前一个操作

n. 重复前一个操作n次

扩展模式地址定界:

:2,+3 表示2到5行

:. 点表示当前行

:$ 表示最后一行

:% 表示全文,相当于1,$

/p1,/p2 第一次被p1匹配到的行到第一次被p2匹配到的行

扩展模式字符串查找:

/world 从上向下查找world

?world 从下向上查找world

n 定位下一个匹配的字串

N 定位上一个匹配的字串

扩展模式字符串替换:

:s/old/new 将当前行中查找到的第一个字符“old” 串替换为“new”

:s/old/new/g 将当前行中查找到的所有字符串“old” 替换为“new”

:#,#s/old/new/g 在行号“#,#”范围内替换所有的字符串“old”为“new”

:%s/old/new/g 在整个文件范围内替换所有的字符串“old”为“new”

:s/old/new/c 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认

    :%s/^\s*//g    删除行首空格

    :g/^$/d      删除空行

    :5,10s/^/#/g   在5到10行行首插入#号注释 

可视话模式:

  允许选择的文本块,可代替鼠标。突出显示的文字可以被删除,复制,变更,过滤,搜索/替换等

    v面向字符

    V面向行
    ctrl-v 面向块

多文件模式:

vim file1 file2 file3 ...

:next 下一个

:prev 前一个

:first 第一个

:last 最后一个

:wall 保存所有

:qall 退出所有

:wqall

多文件窗口:

vim -o file1 file2 ...

-o 水平分割

-O 垂直分割

窗口间切换:ctrl+w

单文件窗口:

Ctrl+w,s: split, 水平分割

Ctrl+w,v: vertical, 垂直分割

ctrl+w,q :取消相邻窗口

ctrl+w,o: 取消全部窗口

: wqall 退出

定制vim工作特性:

配置文件:

全局:/etc/vimrc

个人:~/.vimrc

1、行号:

永久修改:

在/root/.vimrc文件中添加

set nu

:set nonu 去掉行号

临时显示行号:(扩展模式)

:set nu 显示行号

:set nonu 不显示行号

2、括号成对匹配:

匹配:set sm

取消:set nosm

3、自动缩进:

启用:set ai

禁用:set noai

4、高亮搜索:

启用:set hlsearch

禁用:set nohlsearch

5、语法高亮:

启用:syntax on

禁用:syntax off

6、忽略字符的大小写

启用:set ic

不忽略:set noic

7、文件格式:

启用: fileformat=unix

不忽略: fileformat=dos

8、设置文本宽度

:set textwidth=65 (vim only)

:set wrapmargin=15

vim的寄存器:

  有26个命名寄存器和1个无命名寄存器,常存放不同的剪贴版内容,可以不同会话间共享。

  有10个数字寄存器,用0,1,…,9表示,0存放最近复制内容,1存放最近删除内容。当新的文本变更和删除时,1转存到2,2转存到3,以此类推。数字寄存器不能在不同会话间共享。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: