一.vim简介
说vim,肯定会提到vi,他们都是linux的编辑器,vi适合文本编辑,vim更适写代码,他们都是多模式编辑器,不同的是vim是vi的升级版本,他不仅可以兼容vi的所有指令,还有一些新的特性:多级撤销、易用性、语法加亮、可视化操作、对vi的完全兼容。而且vi只适用于unix,vim则可以跨平台,所以下面只介绍vim的用法。
二.vim的四种模式
1.正常模式
正常模式主要是浏览文本内容,一般打开vim都是正常模式,在其他三种模式下,按'Esc'键就会返回正常模式。
2.插入模式
插入模式是用来修改文本内容的
i 在光标所在字符前开始输入文字并进入插入模式
a 在光标所在字符后开始输入文字并进入插入模式
o (字母o) 在光标所在行的下面单独开一新行来输入文字并进入插入模式
s 删除光标所在的字符并进入插入模式
I 在行首开始输入文字并进入插入模式。此行首指第一个非空白字符处。如果行首有空格,则在空格之后输入文字并进入插入模式
A 在行尾开始输入文字并进入插入模式。不管光标在此行的什么地方,只要按A就会在行尾等着输入。
O (大写字母O) 在光标所在行的上面单独开一新行来输入文字并进入插入模式。
S 删除光标所在行并进入插入模式
3.可视模式
可视模式下可以区域选择字符
ctrl + v 以块为单位进行选取的可视化模式
shift + v 以行为单位进行选取的可视化模式
*可视化模式下批量添加字符
(1)ctrl + v 选中要加入字符所在列
(2)按 ‘I’ 进入插入模式,写入要加入的字符
(3)按Esc
4.命令模式
命令 | 含义 |
---|---|
/关键字 | 查找关键字,n向下匹配,N向上匹配 |
:数字 | 移动到指定行 |
gg | 光标移至第一行 |
G | 光标移至最后一行 |
:q | 退出不保存 |
:q! | 强制退出不保存 |
:wq | 保存退出 |
:wq! | 强制保存退出,root及文件所有人 |
:sp file2 | 同时编辑当前文件和文件 file2 |
ctrl+w s | 上下分屏 |
ctrl+w v | 左右分屏 |
ctrl+w c | 关闭所在屏幕 |
ctrl+w 上下左右 | 光标移动到指定屏幕 |
命令模式下字符的管理
命令 | 含义 |
---|---|
yl | 复制一个字母 |
ynl | 复制n个字母 |
yw | 复制一个单词 |
ynw | 复制n个单词 |
yy | 复制一行 |
yny | 复制n行 |
p | 复制完成后按“P”粘贴 |
dl | 删除一个字母 |
dnl | 删除n个字母 |
dw | 删除一个单词 |
dnw | 删除n个单词 |
dd | 删除一行 |
dnd | 删除n行 |
cl | 剪切一个字母 |
cnl | 剪切n个字母 |
cw | 剪切一个单词 |
cnw | 剪切n个单词 |
cc | 剪切一行 |
cnc | 剪切n行 |
:%s/原有字符/替换后字符 | 只替换每一行中出现的第一个原有字符 |
:%s/原有字符/替换后字符/g | 替换所有 |
:%s/^\ *//g | 把全文行首的空格去掉,”^\ *”表示行首的空格 |
注意:执行剪切命令时会转到插入模式,这时候如果要粘贴,则需要按Esc返回正常模式,再执行粘贴,这里需要说的是,一般在正常模式下,不需要用这个命令,因为需要来回切换模式,比较麻烦,这里有一个简单的方法,就是执行删除命令,然后粘贴即可。
三.vim的配置
vim在默认的情况下,编辑界面是没有显示行号、高亮、鼠标等,作为一个玩linux必备的技能之一,一定要玩的很溜,同时为了方便使用,我们会用一些命令给当前的vim增加行号、鼠标等,但是这只是暂时的,当我们打开另一个文件,则又恢复了原样,于是,为了每次打开vim都是我们设置好的,就需要对vim的配置文件做出修改。
/etc/vimrc,此文件是vim的配置文件,在文件的最后加入参数才能生效,加到文件中的参数不生效。
参数 | 含义 |
---|---|
set nu | 添加行号 |
set nonu | 取消行号 |
set mouse=a | 添加鼠标选择 |
set cursorline | 显示行线 |
:set numberwidth=3 | 设置行号列宽 |
:set hlsearch | 高亮显示搜索内容 |
:set incsearch | 输入关键字的时候高亮显示 |
:set ignorecase | 搜索时忽略大小写 |
:set wrapscan | 循环搜索(默认值) |
:set nowrapscan | 只搜索一次 |
:set showmatch | 在输入右括号时,短暂地跳到对应括号处 |
:set matchtime=10 | 跳转时间,单位:十分之一秒 |
:set cursorcolumn | 高亮光标所在列 |
:set nocursorcolumn | 取消高亮光标所在列 |
:set cursorline | 高亮光标所在行 |
:set nocursorline | 取消高亮光标所在行 |
:set wrap | 自动换行 |
:set nowrap | 取消自动换行 |
:set autoindent | 保持上一行的缩进 |
:set shiftwidth=4 | 设置缩进单位 |
:set ruler | 在右下角显示光标位置 |
:set noruler | 不显示光标位置 |
:set scrolloff=3 | 使光标始终和上下边缘相距3行 |
:set list | 设置制表符可见 |
:set autochdir | 将当前目录自动切换为文件所在目录 |
:set scrollbind | 设置多窗口同步滚动 |
:set noscrollbind | 取消多窗口同步滚动 |
:set autoread | 如果文件被修改,自动读入,该项可能会不起作用 |
:set backspace=indent,eol,start | 在Insert模式可以删除行首的空格、断行、进入Insert模式之前的位置 |
:set readonly | 设置只读,该项写在配置文件中可能不起作用,在编辑时有效 |
:set fileformat? | 显示当前的文件格式 |
:set nomodifiable | 设置不可修改 |
:syntax on | 打开语法高亮 |
:syntax off | 取消语法高亮 |
:filetype on | 自动识别文件类型 |
:colorscheme desert | 选择颜色方案 |
四.其他编辑器
1.gedit
感觉这个编辑器很简单,没必要学,图形界面,和windos上的word差不多的操作,不会的可以yelp help:gedit 来获取帮助,但是我不建议大家使用这个,毕竟在linux上,还是vim把玩熟比较好,这仅仅是作者个人建议,仅供参考。
2.Emacs
Emacs不仅仅是一个编辑器,他是一个整合环境,或可称它为集成开发环境,这些功能如让使用者置身于全功能的操作系统中。Emacs不仅可以作为文本编辑器,还可以用来收发电子邮件、通过FTP/TRAMP编辑远程档案、通过Telnet登录主机、上新闻组、登陆IRC和朋友交流、查看日历等功能。
感觉这个编辑器很高大上,感兴趣的朋友可以下去玩玩,很有逼格,这里就不过多介绍了。