Linux vim 基本使用

2018-02-23 15:00:00
ohzer
原创
1304
摘要:Linux的命令行界面下面有非常多的文本编辑器。比如经常听说的就有Emacs、pico、nano、joe与vim等。vim可以看做是vi的高级版。我们为什么一定要学习vim呢?

vim 是一款功能强大的文本编辑器, 默认有三种模式: 命令模式, 插入模式, 编辑模式, 使用# vim file 打开一个文件时,默认进入命令模式, 不同模式直接的切换如下
a. 命令模式切换到 插入模式: Esc 键返回命令模式

             i : 光标处开始插入

             I : 光标所在行首开始插入

            A : 光标所在行尾开始插入(append)

            o : 光标下插入新行

b. 命令模式 切换 编辑模式:  直接输入 :即可, enter 键返回命令模式


常用命令:

1.1  定位命令(命令模式下)

             1.1.1   光标移动到行首: 0

             1.1.2   光标移动到行尾: $

             1.1.3   光标移动到文件首行第一个字符: gg

             1.1.4   光标移动到文件末行第一个字符: G

1.2 复制 && 剪切(删除) && 粘贴 (命令模式下)

            1.2.1  复制一行: yy

            1.2.2  复制n行: nyy

            1.2.3  剪切一行: dd

            1.2.4  剪切n行: ndd

            1.2.5  剪切到行尾:D

            1.2.6  剪切到文件尾:dG

            1.2.7 剪切指定行 : :n1,n2d 编辑模式下 n1 :开始行号,n2 终止行号, 注意此命令是在命令模式下的命令, 而且要注意 写 d, 别忘写了

            1.2.8  粘贴到光标下:p

             注意: 在vim 中删除和剪切命令是一样的,只要不粘贴,剪切就是删除

1.3  替换  && 搜索(命令模式下)

            1.3.1  替换光标处单个字符: r ,然后输入要替换的字符

            1.3.2  进入替换模式: R, 可以连续替换, Esc 退出到命令模式

            1.3.4  批量替换:  将oldstr  字符串 替换成 newstr, 编辑模式下

                       1.  : %s/oldstr/newstr/c     全文替换, 有询问提示

                       2.  :%s/oldstr/newstr/g   全文替换, 没有询问提示

                       3.  :n1,n2s/oldstr/newstr/c      n1行到n2 行之间替换,有询问提示

                       4.  :n1,n2s/oldstr/newstr/g      n1行到n2行之间替换,没有询问提示

            1.3.5 搜索:进入vim 时默认为不忽略大小写的搜索

                      1. 普通搜索: /str

                       2. 模糊搜索: 先设置文件为忽略大小写,在编辑模式下输入: set ic

                                                 设置文件不忽略大小写: set noic

                          在查找到后,按 n 可以查找下一个

1.4 保存退出:(编辑模式下)

            1.4.1 保存:w

            1.4.2 另存为: w newfilename

            1.4.3 保存并退出: wq

            1.4.4 不保存退出: q!

            1.4.5  强制保存:wq!      指针对只读文件而言,但是使用这条命令的只能是文件的所有者和root 用户

            1.4.6 撤销操作:u  命令模式下(undo)


发表评论
评论通过审核后显示。
文章分类
联系我们
联系人: 杨先生
电话: 0871-65652226
传真: 0871-65652227
Email: ohzer@sian.com
QQ: 561631200
微信: ohzer_cn
微博: ohzer
地址: 云南省昆明市官渡区晋馨园小区B幢1单元602号