vim 三种模式:命令模式、插入模式、底线命令模式。

  切换模式:

  命令模式:

  启动 vim 进入命令模式:

  i  切换到插入模式,以输入字符。

  x   删除当前光标所在处的字符。

  :   切换到底线命令模式,以在最底一行输入命令。

  若想编辑文本:启动 vim,进入了命令模式,按下 “i”,切换到输入模式。

  输入模式:

  在命令模式下输入“i”即可进入输入模式。

  ENTER(回车键)          换行

  BACK SPACE(退格键)    删除光标前一个字符

方向键               在文本中移动光标

HOME/END                 移动光标到行首/行尾

Page Up/Page Down        上/下翻页

ESC                        退出输入模式,切换到命令模式

  

  底线命令模式:

  在命令模式下按下 :(英文冒号)就进入了底线命令模式。

  底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

  在底线命令模式中,基本的命令有(已经省略了冒号):

  q   退出程序

  w   保存文件

  按ESC键可随时退出底线命令模式。

  

  

vi/vim 使用实例

使用 vi 来建立名为 test.txt 的文件

vi test.txt

按下 ESC 按钮回到一般模式

在一般模式中按下 :wq 储存后离开 vi

vi/vim 按键说明(一般模式下)

h 或 向左箭头键(←)      光标向左移动一个字符

j 或 向下箭头键(↓)       光标向下移动一个字符

k 或 向上箭头键(↑)      光标向上移动一个字符

l 或 向右箭头键(→)       光标向右移动一个字符

如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!

Ctrl + f 屏幕『向下』移动一页,相当于 [Page Down]按键

Ctrl + b 屏幕『向上』移动一页,相当于 [Page Up] 按键

0 或功能键[Home] 这是数字『 0 』:移动到这一行的最前面字符处

$ 或功能键[End] 移动到这一行的最后面字符处

G 移动到这个档案的最后一行

gg 移动到这个档案的第一行

n<Enter> n 为数字。光标向下移动 n 行

/word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可

n       重复前一个搜寻的动作

N      『反向』进行前一个搜寻动作

:n1,n2s/word1/word2/g       n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2

:n1,$s/word1/word2/g        从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2

:n1,$s/word1/word2/gc       从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代

x   向后删除一个字符

X   向前删除一个字符

dd      删除游标所在的那一整行

ndd     n 为数字。删除光标所在的向下 n 行(包括游标所在的那一行)

yy      复制游标所在的那一行

nyy     n 为数字。复制光标所在的向下 n 行

p       为将已复制的数据在光标下一行贴上

P       为将已复制的数据在光标上一行贴上

u             复原前一个动作(撤销)

Ctrl + r    重做上一个动作

.            重复前一个动作

  一般模式切换到编辑模式

i   从目前光标所在处插入

I   在目前所在行的第一个非空格符处开始插入

a   从目前光标所在的下一个字符处开始插入

A   从光标所在行的最后一个字符处开始插入

o   在目前光标所在的下一行处插入新的一行

O   在目前光标所在处的上一行插入新的一行

r   只会取代光标所在的那一个字符一次

R   会一直取代光标所在的文字,直到按下 ESC 为止

  一般模式切换到指令行模式

:w      将编辑的数据写入硬盘档案中

:w!     强制将编辑的数据写入硬盘档案中

:q      离开

:q!     为强制离开不储存档案

:wq     储存后离开

:wq!    强制储存后离开

:set nu       显示行号,设定之后,会在每一行的前缀显示该行的行号

:set nonu     取消行号

  

Mac 下 vim 常用命令的更多相关文章

  1. Mac下 CMD常用命令

    1.常用命令 pwd     当前工作目录 cd(不加参数) 进root cd(folder)      进入文件夹 cd ..     上级目录 cd ~     返回root cd -     返 ...

  2. linux下vim常用命令 (更新中...)

    1.注释多行 1). 首先按esc进入命令行模式下,按下Ctrl + v,进入VISUAL BLOCK模式; 2). 在行首使用上下键选择需要注释的多行; 3). 按下键盘(大写)“I”键,进入插入模 ...

  3. mac 下 终端常用命令

    open . 打开当前路径下的文件夹 open (路径) 打开此路径下的文件夹 (路径:/Users/linger/Library/Application\ Support/Google/Chrome ...

  4. Mac下终端常用命令

    一.删除文件 1 打开终端应用程序 2 输入命令:sudo (空格) rm (空格)-r (空格)-f (空格)(注意-f后面还有空格),还要注意,全部小写. 3 把你要删的文件或者文件夹用mouse ...

  5. mac 下mysql常用命令

    是那种单独安装的mysql 启动: /usr/local/mysql/bin/mysql -u root -p

  6. 学习操作Mac OS 之 常用命令

    ~ 符号在 Mac 甚至所有基于 Unix 和 Linux 的系统中都是代表当前用户的用户目录,.代表当前目录 配置环境变量语句:  source ~/.bash_profile 查看host文件语句 ...

  7. Mac之vim普通命令使用

    Mac之vim普通命令使用 标签: vim命令 高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx 开始记录宏,并将结果存入寄存器x q 退出记录模式 @x ...

  8. Mac 下VIM配置

    Mac下VIM配置 首先,我们去这里下载MacVim,也可用这个网址:(http://code.google.com/p/macvim/),进入后的界面如下: ____________________ ...

  9. Vim常用命令总结

    Vim常用命令总结: 下文是小编自己整理的关于日常linux vim编程过程中用的一些常用命令,资料参考鸟哥的 如果有需要的小伙伴可以参考一下!(底部有下载地址) 一. 一般模式可用的按钮说明 1.1 ...

随机推荐

  1. css动画效果之transition(动画过渡效果属性)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Abp.core中在应用层获取HttpContext对象

    实际IHttpContextAccessor对象已经在底层实现了自动的依赖注入,只需要在应用层引入Microsoft.AspNetCore.Http,然后在构造函数中依赖注入即可. /// <s ...

  3. sqli-libs(46-53关)

    Less_46 补充知识:MySQL知识 SQL语句中,asc是指定列按升序排列,desc则是指定列 按降序排列: Select * from users order by 1 desc; 使用降序进 ...

  4. Django模板结构优化{% include %}和{% extend %}标签

    https://blog.csdn.net/xujin0/article/details/83420633

  5. Laravel Vuejs 实战:开发知乎 (5)设计问题表

    1.执行命令: php artisan make:model Models/Question -cm 2.设计问题的数据库迁移文件中的字段: <?php use Illuminate\Datab ...

  6. Spring - MVC - thymeleaf 缓存关闭

    1. 概述 spring 配合 thymeleaf 关闭页面缓存 2. 背景 最近复习 spring 找了本书叫 spring in action 5th 本人水平有限 书还写得那么难 调试中遇到了问 ...

  7. yii2之ActiveRecord 模型

          Active Record 模型是一种设计模式,用面向对象的方式抽象地访问数据的模式.在 Yii2 中,每一个 Active Record 模型对象的实例是 yii\db\ActiveRe ...

  8. 如何在Linux中显示和设置主机名(适用ubantu、centos等版本)

    随着连接到网络的计算机数量越来越多,每一台计算机都需要有一个属性来区别于其它计算机.和现实世界中的人一样,计算机也有一个叫做hostname(主机名)的属性. 什么是hostname 从它的操作手册来 ...

  9. chomp/undef/标量 --Perl 入门第二章

    1.chomp 用途:去掉字符串 末尾的换行符 $text="a line of text \n" chomp($text) #去除行末的换行符 chomp()  --本质上是一个 ...

  10. esp8266(wifi)模块调试记录

    1.要注意usb转TTL接口上的晶振 如果晶振是12Mhz,可能就收不到反馈,因为12Mhz波特率会有误差.