暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

vim编辑器使用介绍

哦呦明知山有虎 2020-11-23
497

第三章 vim编辑器

3.1 vi编辑器简介

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim 则可以说是程序开发者的一项很好用的工具。

连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。可以利用别名让输入vi命令的时候,实际上执行vim编辑器,例如:

[root@localhost ~]# alias vi='vim'

3.2 vim基本使用

3.2.1 vim的工作模式

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和编辑模式(Last line mode)。这三种模式的作用分别是:

「命令模式」:是主要使用快捷键的模式,命令模式想要进入输入模式,可以使用以下的方式:

命令作用
a在光标所在字符后插入
A在光标所在行尾插入
i在光标所在字符前插入
I在光标所在行首插入
o在光标下插入新行
O在光标上插入新行

「输入模式」:主要用于文本编辑,和记事本类似,输入数据。

「编辑模式」

操作作用
:w保存不退出
:w    [新文件名]把文件另存为新文件
:q不保存退出
:wq保存退出
:!强制
:q!强制不保存退出,用于修改文件之后,不保存数据退出。
:wq!强制保存退出,当文件的所有者或者root用户,对文件没有写权限的时候,强制写入数据使用

3.2.2 命令操作模式

移动光标
  • 上下左右移动光标
上下左右方向键

H、j、k、l

  • 把光标移动到文件头或尾
gg       移动到文件头

G   移动到文件尾

  • 移动到行首或行尾
^   移动到行首

$
   移动到行尾

  • 移动到指定行
:n     移动到第几行,这里的n是数字,表示移动到第几行。

删除或剪切
  • 删除字母
x  删除单个字母

nx  删除n个字母,n是数字,如果打算从光标位置删除连学的10个字母,可以使用"10x"即可。删除 字母并不符合使用习惯,所以更习惯在编辑模式中,用“Backsapce”键删除字母。

  • 删除整行或剪切
dd  删除单行

ndd  删除多行

:n1,n2d  删除指定范围的行

  • 粘贴的操作
p  粘贴到光标后

P(大写)  粘贴到光标前

  • 从光标所在行删除到文件尾
dG  从光标所在行删除到文件尾

复制
yy  复制单行

nyy  复制多行

撤销
u  撤销

ctrl+r  复制多行

替换
r  替换光标所在处的字符

R  从光标所在处开始替换字符,按ESC结束

vim配置文件

这次末行模式参数设置,多数需要在vim中才能生效。

设置参数含义
:set nu
:set nonu
显示与取消行号
:syntax on
:syntax off
是否依据语法显示相关的颜色帮助。在Vim中修改相关的配置文件或Shell脚本文件时(如前面示例的脚本/etc/init. d/sshd),默认会显示相应的颜色,用来帮助排错。如果觉得颜色产生了干扰,则可以取消此设置
:set hlsearch
:set nohlsearch
设置是否将查找的字符串高亮显示。默认是set hlsearch 高亮显示。
:set ruler
:set noruler
设置是否显示右下角的状态栏。默认是setruler显示
:set showmode
:set noshowmode
设置是否在左下角显示如“一INSERT--”之类的状态栏。默认是set showmode显示
:set list
:set nolist
设置是否显示隐藏字符(Tab键用“^I”表示,回车符用“$”表示)。默认是nolist显示。如果使用set list显示隐藏字符,类似“cat -A文件名”

vim支持更多的参数设置,可以使用命令:set all 进行查看,一般的参数设置都是临时生效,永久生效需要设置"~/.vimrc"。

查找
/查找内容  从光标所在行向下查找

?查找内容  从光标所在行向上搜索

n  下一个

N  上一个

替换
:1,10s/old/new/g  替换1到10行的所有old为new

:%s/old/new/g  替换整个文件的old为new

替换字符串,我举几个例子:在shell中“#”开头是注释,那我是否可以注释文件的前10行呢?手工一个一个注释很麻烦,那么批量替换吧:

:1, 10s/ /#/g  注释1到10行

:1, 10s/ #//g  取消注释

而在C语言,PHP 语言等大多数语言中,是使用“//”开头作为注释的,我们当然可以用vim来写这些程序语言脚本,那么批量加入“//”注释吧:

:1, 10s/ /\/\//g  1到10行,行首加入//

:1, 10s/^\/\///g  取消1到10行行首的//

3.2.3 vim使用技巧

在vim中导入其他文件内容或者命令结果
  • 在vim中导入其他文件内容或命令结果
:r 文件名   把文件内容导入光标位置

可以把其他文件内容导入到光标所在位置

  • 在vim中执行系统命令
:!命令  在vim中执行系统命令

这里只是在vim中执行系统命令,但并不把系统命令的结果写入到文件中。主要在于在文件编辑中,查看系统信息,如时间。

  • 导入系统结果
:r !命令   vim中执行执行系统命令,并把命令结果导入光标所在行

设定快捷键
:map 快捷键  快捷键执行的命令   自定义快捷键

vim允许自定义快捷键,常用的自定义快捷键如下:

: map ^P I#<ESC> 按“ctr1+p"时,在行首加入注释
:map  ^B^x   按“ctr1+b"时,删除行首第一个字母(删除注释)

注意:^P快捷键不能手工输入,需要执行ctrl+V+P来定义,或ctrl+V,然后ctrl+P。 ^B快捷键也是一样。

字符替换
:ab 源字符 替换为字符  字符替换

在vim编辑中,有时候需要频繁输入某一个长字符串(比如邮箱),这是使用字符串替换,能增加输入效率,例如;

:ab mymail helloworld@163.com  当碰到mymail时,转变为邮箱

注意:“源字符”不应设置为太短,否则可能影响输入。

多文件打开

在vim中可以同时打开两个文件,只要执行如下命令:

[root@localhost hqs]# vim -o mabaoguo.txt englishText.txt
[root@localhost hqs]# vim -O mabaoguo.txt englishText.txt

如图所示:




文章转载自哦呦明知山有虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论