linux系统怎么安装vim编辑器(史上最强编辑器)
做编程工作,离不开各种编辑器,每种语言都有适合自己的文本编辑器,比如Python用PyCharm,C 用Visual Studio,前端开发用VS Code......
但是,如果需要一款综合性价比最高的编辑器,可以实现所有编程语言、文本文件操作,就要vim或者emacs。这是Linux里面内置的终端编辑器,vim是vi的演变,vi是UNIX早期的文本编辑器。
vim优点:
1.终端操作,不需要图形化界面
2.效率高
3.快捷键丰富,可以在不使用鼠标、不脱离键盘情况下实现各种复杂的文本操作
学习vim时,首先掌握基础命令,可以实现简单程序编写,设置禁用鼠标,强制练习基础命令。有问题查阅笔记或者博客,逐渐了解、熟练。一般来说,使用基础功能即可,满足远程终端中的基础使用。而复杂功能不需要单独学习,使用相关的IDE更加方便,而且大多数IDE也可以设置支持vim模式。
项目开发一般都是在本地调试,测试项目成功,再进行服务器环境部署,上传代码,不会直接在服务端写程序,只需完成简单的更改。
# vim安装
sudo apt install vim
- 「命令模式」:可以进行删除、复制、粘贴等快捷操作。
- 「编辑模式」:可以编辑文件内容。
- 「末行模式」:可以通过命令操作文件,比如搜索、保存、退出等。
最基本使用流程
学习一款编辑器,一般来说并不是什么难事,只要选择文件-新建,写代码,保存,运行就可以,但是vim是Linux终端中的编辑器,没有任何图形化界面,这就意味着所有的操作都要通过命令完成,显然,我们需要掌握相当多的指令,且灵活熟练使用,才可以提升开发效率。
第1步,创建/打开文件:
使用指令vim 文件名,如果文件不存在,直接新建并打开,如果文件存在则直接打开编辑文件。
打开文件后,下方显示文件名,光标指向第一行,然而目前处于命令模式,一切操作皆为指令,并不能写程序。
如果要进入插入模式,有很多快捷键,我们当前只使用最基本操作,记住字母i就可以,i是insert插入的意思,按下后就会进入插入模式。
平面下方显示INSERT,此时,就可以愉快的写程序啦~
Linux并不以后缀名区分文件,我的文件命名为test.txt,后缀.txt在Windows系统里面是文本文档,我的文件也就当作一个记事本,写入字符串Hello cat. 。
接下来就要保存退出,需要按键盘左上角ESC键,退回命令模式,然后输入冒号,需要按住Shift键组合使用。
然后在冒号后面输入wq命令,w是写入,也是保存的意思,q是quit退出的意思。
这样,vim的最基本使用就完成了,虽然vim学习曲线很陡峭,但是只要掌握最基本使用流程就可以快速的用vim工作,然后再逐渐掌握其他的快捷键或命令,提升开发效率。
退出后,查看当前目录,出现test.txt文件。那么如何查看文件,我们再来学习一个常用命令cat,cat 文件名就可以查看文件中的内容。
这样文件就已经查看成功啦,证明vim写入也是正确的。
vim配置文件配置文件只需在home目录下创建一个.vimrc隐藏文件即可,然后进行个性化配置,这部分内容不必深入研究,主要是代码缩进,显示行号,括号匹配,支持鼠标等操作,直接网上搜索选择一个适合自己的配置即可,如下是我个人的当前配置,供大家复制粘贴~
"显示行号
set nu
"启动时隐去援助提示
set shortmess=atI
"语法高亮
syntax on
"使用vim的键盘模式
"set nocompatible
"不需要备份
set nobackup
"没有保存或文件只读时弹出确认
set confirm
"鼠标可用
set mouse=a
"tab缩进
set tabstop=4
set shiftwidth=4
set expandtab
set smarttab
"文件自动检测外部更改
set autoread
"c文件自动缩进
set cindent
"自动对齐
set autoindent
set cindent
"智能缩进
set smartindent
"高亮查找匹配
set hlsearch
"背景色
set background=dark
"显示匹配
set showmatch
"显示标尺,就是在右下角显示光标位置
set ruler
"去除vi的一致性
set nocompatible
"允许折叠
set foldenable
"""""""""""""""""设置折叠"""""""""""""""""""""
"
"根据语法折叠
"set fdm=syntax
"手动折叠
"set fdm=manual
"设置键盘映射,通过空格设置折叠
nnoremap <space> @=((foldclosed(line('.')<0)?'zc':'zo'))<CR>
""""""""""""""""""""""""""""""""""""""""""""""
"不要闪烁
set novisualbell
"启动显示状态行
set laststatus=2
"浅色显示当前行
autocmd InsertLeave * se nocul
"用浅色高亮当前行
autocmd InsertEnter * se cul
"显示输入的命令
set showcmd
"被分割窗口之间显示空白
set fillchars=vert:/
set fillchars=stl:/
set fillchars=stlnc:/
let &termencoding=&encoding
set fileencodings=utf-8,gbk
inoremap ( ()<Esc>i
inoremap [ []<Esc>i
inoremap { {}<Esc>i
inoremap ' ''<Esc>i
inoremap " ""<Esc>i
打开文件后,默认就是命令模式,可以进行光标移动、复制粘贴、搜索替换等操作。
注意:命令模式中,敲击的键盘会被识别为命令,而不是输入内容。
移动光标
指令 |
功能 |
h 或 左方向键(←) |
光标向左移动一个字符 |
l 或 右方向键(→) |
光标向右移动一个字符 |
k 或 上方向键(↑) |
光标向上移动一个字符 |
j 或 下方向键(↓) |
光标向下移动一个字符 |
Shift 6 或 0 或 home键 |
光标移动到行首 |
Shift 4 或 $ 或 end键 |
光标移动到行尾 |
Ctrl f 或 pg up键 |
【屏幕】向下移动一页 |
Ctrl b 或 pg dn键 |
【屏幕】向上移动一页 |
gg |
移动到文件的第一行 |
G |
移动到文件的最后一行 |
nG |
移动到文件的第n行 |
四个方向键hjkl比较常用,很多初学者认为我用上下左右箭头也是很方便啊,实际上,长期使用vim最终会形成肌肉记忆,只管专注于写程序,手指可以完全不脱离键盘,更用不上鼠标,但是为了让初学者操作更加方便,我在配置文件中增加了set mouse=a,使得鼠标可以使用。gg跳到第一行,G跳到最后一行也是高频使用的命令,数字 G,针对于文件比较大,我们要跳转到指定位置或者大概范围,比如跳转到第8行,按下数字8,再按下G。
搜索替换
指令 |
功能 |
/字符串 回车 |
向下搜索指定字符串 |
?字符串 回车 |
向上搜索指定字符串 |
n |
继续向下搜索下一个字符串 |
N |
继续向上搜索下一个字符串 |
%s/word1/word2/g |
将文件中的word1替换为word2 |
%s/word1/word2/gc |
将文件中的word1替换为word2,但替换前需要用户确认! |
1,10s/word1/word2/g |
将第1行到第10行的word1替换为word2 |
举个例子,搜索就是末行模式下,在冒号后面输入/root,我当前复制一份/etc/passwd存储用户名密码的文件,搜索root用户,这是Linux里面唯一一个最高权限用户。
搜索到的内容会高亮显示。如果后面还有root可以按下n选择下一个,即next。
复制粘贴删除
指令 |
功能 |
x |
删除后一个字符(光标当前字符) |
X |
删除前一个字符 |
dd |
剪切一行 |
ndd |
剪切n行 |
yy |
复制一行 |
nyy |
复制n行 |
p |
粘贴到下一行 |
P |
粘贴到上一行 |
u |
撤回操作 |
Ctrl r |
撤回刚才的撤回操作 |
r |
修改单个字符 |
R |
连续修改多个字符,ESC退出 |
.(小数点) |
重复刚才的操作 |
指令 |
功能 |
i |
进入输入模式,在光标前面插入 |
I |
进入输入模式,在当前行首第一个非空格字符处插入 |
a |
进入输入模式,在光标后面(当前光标所在字符)插入 |
A |
进入输入模式,在当前行尾第处插入 |
o |
进入输入模式,在光标下一行插入新行 |
O |
进入输入模式,在光标上一行插入新行 |
ESC键 |
退出编辑模式(输入模式) |
英文状态的 :键 进入末行模式
命令模式 或 vim打开文件时,按下 : 键,左下角出现 :时,即表示末行模式。
指令 |
功能 |
:w |
保存 |
:q |
退出 |
:wq |
保存后退出 |
:q! |
不保存,强制退出 |
:set nu |
显示行号 |
:set nonu |
取消 显示行号 |
:w [文件名] |
将编辑后的内容保存到另一个文件中(另存为) |
:2,5 w [文件名] |
将第2到5行的内容保存到另一个文件中(指定行另存为) |
:r [文件名] |
输入另一个文件的内容,到光标的下一行 |
vim的更多操作可以观看下方视频,按照步骤,一定会快速掌握,强制自己使用vim完成日常代码任务,一周左右就可以灵活使用啦~
相关文章
- 什么是Linux系统?我们是否要用Linux
- Linux系统虚拟机和云服务配置,快速搭建学习环境
- 学习Linix命令行,用手就行!
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com