vim

在所有linux里都有一套文本编辑器,那就是vi。vim,则是高级版的vi。vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计。

一般来说所有UNIX LIKE系统内置vi文本编辑器,其他的文本编辑器不一定存在。如果vim命令打开一个文件,显示命令不存在,那么毫无疑问需要安装vim。

安装vim

一般来说软件安装一般有三种方式,其他的暂且不说,采用apt-get方式安装比较方便。
执行
sudo(非root用户需要) apt-get install vim
命令,

然后执行vim a.txt命令

出现下面界面则安装成功

vim打开文件的方式(4种)

vim 文件路径 作用:打开指定的文件
vim + 数字 文件路径 作用:打开指定的文件并将光标移动到指定行
vim + /关键词 文件路径 作用:打开指定的文件,并高亮显示关键词
vim 文件路径1 文件路径2 文件路径3 作用:同时打开多个指定的文件

vim的三种模式

三种模式:命令模式、编辑模式(输入模式)、末行模式(尾行模式)

命令模式:在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(删除行、复制行、移动光标、粘贴等)【打开文件后默认进入的模式】;
编辑模式:在该模式下可以对文件内容进行编辑;
末行模式:可以在末行输入命令对文件进行一些操作(搜索、替换、保存、退出、撤销、高亮等)

vim命令模式

该模式是打开文件的第一个看到的模式(打开文件即可进入),当前模式下还无法编辑文件,但可以复制、删除等操作。

1、光标移动
1):某行内光标移动到行首
按键:shift+6或^(键盘上面的6不是小键盘的6)
2):某行内光标移动到行尾
按键:shift+4或$(键盘上面的4不是小键盘的4)
3):光标移动到首行行首
按键:g
4):光标移动到尾行行首
按键:G
这个快捷键比较常用,比如有一个较长的shell脚本,通过vim\进入后,直接按下G,光标就迅速移动到尾行的行首
5):光标翻屏
向上翻屏:按键:ctrl+b或pgUp
向下翻屏:按键:ctrl+f或pgOn

2、复制操作 配合粘贴一起使用
1):按键:yy
粘贴:在想要粘贴的地方按下p键

2):以光标所在行为准(包含当前行),向下复制指定的行数
按键:数字 yy

3):可视化复制
按键:ctrl + v,然后按下上下左右方向键来选中需要复制的区块,按下yy键复制,再按下p键进行粘贴。

3、剪切/删除
1):剪切/删除光标所在行
按键:dd(删除后下一行上移)
注意:dd严格意义上说是剪切命令,但是如果剪切不粘贴那就是删除的效果。

2):剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行
按键:数字 dd

3):剪切/删除光标所在行,但删除后光标不上移
按键:D(删除后当前行会变成空白行)

4、撤销/恢复
撤销::(冒号) u或u
恢复:ctrl + r 恢复之前的撤销

扩展1:光标的快速移动
1):快速将光标移动到指定行
按键:数字G

2):以当前光标为准向上/下移动n行
按键:数字 方向键向上键/向下键

3):以当前光标为准向左/右移动n个字符
按键:数字 方向键向左键/向右键

4):末行模式下光标的快速移动,移动到指定的行
按键:输入英文:,再输入数字,按下回车

vim编辑模式

在命令模式下输入:
i:在光标所在字符前开始插入;
最常用的一个,比如从某个位置要开始编辑内容,按下i,下方则会一直出现INSERT(不管输入i还是a都会出现INSERT),表明是编辑模式。

a:在光标所在字符后开始插入;
o:在光标所在行下面另起一新行插入;
I:在光标所在行的行首插入,如果行首有空格则在空格后插入;
A:在光标所在行的行尾开始插入;
O:在光标所在行的上面另起一行开始插入;
S:删除光标所在行并开始插入;

退出方式:按下ESC键

编辑模式下编辑内容只是编辑内容,保存操作则是末行模式的操作才可以保存。

末行模式

由命令模式按下英文‘:’进入末行模式
1):保存操作(write)
输入:“:w” 保存文件
输入:“:w 路径” 另存为

2):退出(quit)
输入:‘:q’ 退出文件

3):保存并退出
输入:‘:wq’

4):强制退出,之前的操作不保存
输入:‘:q!’

5):调用外部命令(了解)
输入:‘:! 外部命令’

6):搜索/查找
输入:‘/关键词’

在输入结果中切换上/下一个结果 N/n
取消高亮,输入:‘nohl’

7):替换,
输入:‘?/搜索的关键词/要替换的词’ 替换光标所在行的第一处符合条件的内容
输入:‘?/搜索的关键词/要替换的词/g’ 替换光标所在行所有符合条件的内容
输入:‘%s/搜索的关键词/要替换的词’ 替整个文档中每一行第一个符合条件的内容
输入:‘?/搜索的关键词/要替换的词/g’ 替换整个文档中所有符合条件的内容
上面的表情符号其实:和s,但markdown语法显示成表情了,研究以下怎么去掉,下回再修改

8):显示行号
输入:‘:set nu’按回车,则会有以下效果

取消:‘set nonu’

如果在末行模式输入了命令,要想清空,按两下ESC,即可清除所有命令。

vim的配置

vim是一款编辑器,编辑器也是有配置文件的。
vim配置有三种情况:
a、在文件打开的时候在末行模式下输入的配置(临时的)
b、个人配置文件(~/.vimrc,如果没有可新建一下)
c、全局配置文件(vim自带,/etc/vimrc)

1)新建好个人配置文件之后进入编辑
比如显示行号:set nu
不显示着色:syntax off

如果某个配置项,在个人配置文件与全局配置文件产生冲突时以谁为准?针对同一配置,如果个人配置有,以个人配置为准;如果个人配置没有,以全局配置为准。

2、异常退出
什么是异常退出:在编辑文件之后并没有正常的去wq(保存退出),而是遇到突然关闭终端或者断电的情况,则会显示下面的效果,这个情况称之为异常退出。

解决办法:将交换文件(在编辑过程中产生的临时文件后缀名为.swp)删除掉即可。

中文乱码解决方式

编辑~/.vimrc文件,加上如下几行:
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
即可解决中文乱码的问题

ubuntu——vim详解相关推荐

  1. Linux文本编译工具VIM详解

    Linux文本编译工具VIM详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.VIM概述 1>.vim简介 1>.vi: 全称Visual editor,即文本编 ...

  2. linux下的vim详解(图文结合 )

    目录 准备工作: vim基本概念 vim的基本操作 三个模式之间的进入进出 打开vim 退出vim 插入模式insert 底行模式--command 三个模式中的操作详解 命令模式中的操作 底行模式c ...

  3. 安装Nginx到linux服务器(Ubuntu)详解

    先去下载一个nginx放到服务器. 然后解压(可参考前面安装tomcat)编译(./configure --prefix=/usr/local/nginx/server/ && mak ...

  4. ubuntu优化详解

    关于如何优化Ubuntu系统性能,也是广大Ubuntu玩家最为关心的一个话题,在Ubuntu中文论坛上也总结了一些经验,多半是禁用一些服务来起到优化系统的目的,彻底性不高.本文将详细从原理角度阐述Ub ...

  5. Windows10自带Ubuntu配置详解(小白必看)

    注:1.运行命令时一定要等上一条命令运行完后再运行下一条命令,一串绿色字体后面接个~$然后一个光标闪动,就可以输入下一个命令了. 2.sudo -i 此条命令是进入root模式,标志是~#后一个光标闪 ...

  6. mysql web界面 Linux_部署WEB项目到服务器(三)安装mysql5或者mysql8到linux服务器(Ubuntu)详解...

    突发奇想,想在自己电脑上部署一个web网站. 1,首先是下载一个适合自己已安装服务器版本的mysql数据库. 这里使用网上的链接http://dev.mysql.com/downloads/mysql ...

  7. Ubuntu tcpdump详解

    超级详细Tcpdump 的用法 1.抓取回环网口的包:tcpdump -i lo 2.防止包截断:tcpdump -s0 3.以数字显示主机及端口:tcpdump -n 第一种是关于类型的关键字,主要 ...

  8. Linux文本编辑器---vim详解

    零.前言 本篇主要介绍Linux下文本编辑器vim的使用方法,以及sudo命令的实现. 1.什么是vim 在windows系统下,我们使用VS来编写代码,编译代码,调试代码,运行代码等,甚至还可以进行 ...

  9. 部署WEB项目到服务器(三)安装mysql到linux服务器(Ubuntu)详解

    突发奇想,想在自己电脑上部署一个web网站. 1,首先是下载一个适合自己已安装服务器版本的mysql数据库. 这里使用网上的链接http://dev.mysql.com/downloads/mysql ...

最新文章

  1. idea mybatis plugin插件,免费mybatis插件
  2. 开发实习生做什么_实习生月薪6W,还有住房补贴!投行前台到底是做什么的?...
  3. 【Linux】一步一步学Linux——ldconfig命令(255)
  4. 2014025689《嵌入式程序设计》第一周学习总结
  5. 单车家族 结对项目二
  6. 云南省农村信用社计算机岗位待遇如何,云南农村信用社薪资待遇如何?
  7. c语言入门经典课后作业,C语言入门经典习题答案.doc
  8. 转: android apk 防止反编译技术(1~5连载)
  9. 十(7)rsync:介绍、常用选项、通过ssh同步、通过服务同步、linux系统日志、screen...
  10. python公开课乐博学院_乐搏学院VIP36期全栈班学习群 - 乐搏软件教育 - 软件测试 - Powered By EduSoho...
  11. 5g pdu session_设备 | NEC被选为NTT DOCOMO独立5G移动核心的供应商
  12. SpringBoot实战(九)之Validator
  13. perl语言入门(1)标量数据
  14. 基于kali linux 跑字典暴力破解wifi教程
  15. html写一个简单版动态爱心
  16. 两年工作经验成功面试阿里P6总结(配答案)
  17. richface 皮肤
  18. F 魏迟燕的自走棋(思维+贪心+并查集维护联通块/左部点配对边<=2的匈牙利)
  19. 如何查找国际会议信息的总结
  20. C++ 实现一个简单的通讯录管理系统

热门文章

  1. 入门级node+uni-app开发即时通讯聊天室(1)项目准备
  2. 身体健康,从情绪健康开始
  3. Web字体(【iconfont.cn】引用在线字体)@font-face属性的使用以及字体格式详解
  4. 2017-8-27 R语言学习路线
  5. android高仿全民直播、多窗口管理、图标效果、开发框架,下拉上滑、UI框架等源码
  6. Substrate Tutorials:Create Your First Substrate Chain (single-node)
  7. python编写摇骰子游戏_Python实现的摇骰子猜大小功能小游戏示例
  8. PD协议芯片,快充协议芯片RK837
  9. 文章5:多功能智能跟随行李箱控制系统设计 | 本科毕业设计 - 【控制器的学习ARDUINO+STM32】
  10. 《赫斯曼交换机的灯位含义》——【赫斯曼交换机灯位显示及维护- by istrangeboy 原创】