小白向:Linux vim编辑器(一)
简介:
vim编辑器是Linux/Unix系统下的标准编辑器,是Linux系统中不可或缺的编辑工具,同时也是vi编辑器的升级版。在使用Mac系统终端功能时也会涉及vim编辑器的运用。
大部分Linux系统自带vi编辑器,如需自行安装vim,指令如下:
sudo apt install vim
Mac系统自带vim编辑器,也可以使用brew安装:
brew install vim
终端输入vim+文件路径或文件名即可新建或打开vim文件。
vim的三种模式:
vim通常有三种模式:一般模式,插入模式,末行模式。本篇介绍一般模式下的常用操作。
一般模式:
一般模式也称普通模式或命令行模式。不管叫什么,进入vim文件后默认看到的就是该模式。在这里可以使用上下左右键移动光标,进行删除、复制等操作处理文件数据,但无法自由插入数据。
初学者们不要被这个遍地~符号,看似按啥都没反应的界面吓到,其实它有着自己独特的指令操作方式。
(注:创建空文件后可按【i】进入INSERT模式进行自由输入,方便练习,输入完成后按【ESC】退出INSERT模式回到一般模式)
复制粘贴:
1、按字符:
一般模式下输入字符【v】(小写)进入VISUAL按字符选择模式,通过【h、j、k、l】或方向键移动光标选择要进行复制的字符串,选定后按y复制,移动到目标处按p粘贴,h,j,k,l 分别用于光标左移,下移,上移,右移;
2、按行:
一般模式下输入字符【V】(大写)进入VISUAL LINE按行选择模式,选择要进行复制的行,按y复制,按p粘贴;
3、按块:
一般模式下输入字符【ctrl+v】(大写)进入VISUAL BLOCK按块选择模式,选择要进行复制的块范围,按y复制,按p粘贴;
移动光标
G :将光标移至最后一行行首
nG :将光标移至第n行行首
gg:移动到文件开头,相当于1G
0:光标移到所在行行首
$:光标移到所在行行尾
w或e:下个字开头或结尾
ctrl+b:前一页
ctrl+f:后一页
查找
/:从上往下查找
?:从下往上查找
n:查找下一处
shift*:快速查找当前光标所在的词
修改:
r或R:替换当前光标字符(R则进入REPLACE模式)
J:合并上下两行
>>或<<:缩进或反缩进
删除:
x:删除光标处字符
X:删除光标前的字符
nx:删除光标处开始的n个字符
dd:删除光标所在行
D:从光标开始删至行末
.:重复前一个操作
赶快动手练习一下吧!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 第009课 gcc和arm-linux-gcc和Makefile
- Go 每日一库之 quicktemplate
- 第010课 掌握Jz2440_ARM芯片时钟体系
- 第011课 Jz2400串口(UART)的使用
- 面试官看完我手写的单例直接惊呆了!
- 安利几个JS开发小技巧
- 深入理解Pod(一)
- [902]python list排序
- 第012课 内存控制器与SDRAM
- 一篇文章教给你Bypass学习基础
- 第013课 S3c2440代码重定位详解
- [901]sqlite数据库的导出与导入
- 【React】730- 从 loading 的 9 种写法谈 React 业务开发
- 第014课 Jz2400_ARM异常与中断体系详解
- 作为一个程序员居然还没有属于自己的一个博客?