在shell中,记住一些常用的vim命令,会在操作时候事半功倍。

光标移动

h,j,k,l,h  #表示往左,j表示往下,k表示往右,l表示往上
Ctrl f #上一页
Ctrl b #下一页
w, e, W, E #跳到单词的后面,小写包括标点
b, B #以单词为单位往前跳动光标,小写包含标点
O #开启新的一行
^ #一行的开始
$ #一行的结尾
gg #文档的第一行
[N]G #文档的第N行或者最后一行

搜索

/pattern    #搜索(非插入模式)
?pattern #往后搜索
n #光标到达搜索结果的前一个目标
N #光标到达搜索结果的后一个目标

窗口

:split    #水平方向分割出一个窗口
:vsplit #垂直方向分割出一个窗口
:close #关闭窗口
Ctrl W #切换窗口, h到左边窗口,j到下方窗口,k到上方窗口,l到右边窗口

插入模式

i    #插入到光标前面
I #插入到行的开始位置
a #插入到光标的后面
A #插入到行的最后位置
o, O #新开一行
Esc #关闭插入模式

编辑

r         #在插入模式替换光标所在的一个字符
J #合并下一行到上一行
s #删除光标所在的一个字符, 光标还在当行
S #删除光标所在的一行,光标还在当行,不同于dd
u #撤销上一步操作
ctrl r #恢复上一步操作
. #重复最后一个命令
~ #变换为大写
[N]>> #一行或N行往右移动一个tab
[N]<< #一行或N行往左移动一个tab

关闭

i    #插入到光标前面
I #插入到行的开始位置
a #插入到光标的后面
A #插入到行的最后位置
o, O #新开一行
Esc #关闭插入模式

剪切和复制

dd      #删除一行
dw    #删除一个单词
x    #删除后一个字符
X    #删除前一个字符
D    #删除一行最后一个字符
[N]yy #复制一行或者N行
yw    #复制一个单词
p    #粘贴

视觉模式

v    #选中一个或多个字符
V #选中一行

摘自:https://www.sheetgit.com/sheets/9e58d539d616e9bc68b8d729957ad0dc

Vim命令相关的更多相关文章

  1. vim命令的妙用

    进来看到了一篇博文,讲述的是无插件Vim编程技巧,然后看到里面还有一些其余的关于vim的博文,感觉值得收藏:酷 壳 – CoolShell.cn 这里挑选出其中一篇,这也是自己已经学习过的: 无插件V ...

  2. vim 命令补充(1)

    本篇文章主要教你如何使用 Vim 分屏功能. 分屏启动Vim 使用大写的O参数来垂直分屏. vim -On file1 file2 ... 使用小写的o参数来水平分屏. vim -on file1 f ...

  3. 【linux+C】神器 vim + 指针相关客串

    前篇回顾 上篇介绍了linux下C编程基本环境配置以及相关工具使用选择. 不过10个大牛9个用vim,那么咱们就来玩vim.linux下玩c就别依靠图形界面.好吧告别Ide,命令行才是c的王道. 本篇 ...

  4. VIM 命令速查表

    今天整理一份 VIM 常用命令速查表,当做给自己备忘. 进入VIM 相关 命令 描述 vim filename 打开或者新建文件 vim +n filename 打开文件并将光标置于第n行行首 vim ...

  5. linux中无法使用vim命令

    报:linux中  vim 不是内部指令! 解决: 1. rpm -qa | grep vim // 查看vim命令在什么软件包 出现 vim-minimal-7.4.160-4.el7.x86_64 ...

  6. Linux vim命令

    介绍 vim命令和vi的操作基本一致,vim命令的参数很多,我在这里列出了一些平时需要用的一些参数,vim主要有两个界面一个是esc的操作界面还有一个是输入i的编辑界面. 移动光标 0 (零):将光标 ...

  7. Linux中exec命令相关

    Linux中exec命令相关 exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息. b ...

  8. 今天在Mac机器上使用了Flex Builder编辑了一个源代码文件,保存后使用vim命令去打开时发现系统自动在每一行的结尾添加了^M符号,其实^M在Linux/Unix中是非常常见的,也就是我们在Win中见过的/r回车符号。由于编辑软件的编码问题,某些IDE的编辑器在编辑完文件之后会自动加上这个^M符号。看起来对我们的源代码没有任何影响,其实并不然,当我们把源代码文件Check In到svn之类

    今天在Mac机器上使用了Flex Builder编辑了一个源代码文件,保存后使用vim命令去打开时发现系统自动在每一行的结尾添加了^M符号,其实^M在Linux/Unix中是非常常见的,也就是我们在W ...

  9. 学习vim命令:“:w !sudo tee %”

    学习vim命令:“:w !sudo tee %” Original URL:http://www.haw-haw.org/node/1501 原文来自于commandlinefu 原文是这样解释这个命 ...

随机推荐

  1. python 全栈开发,Day112(内容回顾,单例模式,路由系统,stark组件)

    一.内容回顾 类可否作为字典的key 初级 举例: class Foo(object): pass _registry = { Foo:123 } print(_registry) 执行输出: {&l ...

  2. Ext.js入门

    一:ExtJs简介: ExtJs通常简称为Ext,它是一个非常优秀的Ajax框架,用Javascript编写,它与后台技术无关,可以用来开发具有炫丽外观的富客户端应用.Ext所开发的多彩界面吸引了许多 ...

  3. 【C++ Primer 第11章 练习答案】2. 关联容器概述

    11.2.1节练习 [练习11.7]代码: #include<iostream> #include<string> #include<vector> #includ ...

  4. Entity Framework解决sql 条件拼接,完美解决 解决 不支持 LINQ 表达式节点类型“Invoke”【转】

    传统的操作数据库方式,筛选数据需要用StringBuilder拼接一大堆的WHERE子句. 在Entity Framework中,代码稍有不慎就会造成巨大性能消耗,如: using(var db=ne ...

  5. python3 使用SimpleHTTPServer搭建web服务器

    刚刚萌发了一个念头,要用python来做个web服务器,秀出自己的网页.于是,开始了我的搭建web服务器之旅. 首先,如果不想使用Apache.IIS,那就需要一个HTTP服务,而python自带了一 ...

  6. (第8篇)实时可靠的开源分布式实时计算系统——Storm

    摘要: 在Hadoop生态圈中,针对大数据进行批量计算时,通常需要一个或者多个MapReduce作业来完成,但这种批量计算方式是满足不了对实时性要求高的场景.那Storm是怎么做到的呢? 博主福利 给 ...

  7. POJ3237 Tree 树链剖分 线段树

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - POJ3237 题意概括 Description 给你由N个结点组成的树.树的节点被编号为1到N,边被编号为1 ...

  8. mac电脑对ntfs格式硬盘进行写操作(简单说就是向ntfs硬盘拷贝东西)

    使用mac电脑的童鞋应该都会遇到一个问题: 对ntfs格式的优盘或硬盘(移动硬盘默认ntfs)只能读不能写,也就是只能拷贝出数据,却没法拷贝数据到移动硬盘中. 下面是参考自网上的一种方法,无需第三方软 ...

  9. C#:几种数据库的大数据批量插入(转)

    在之前只知道SqlServer支持数据批量插入,殊不知道Oracle.SQLite和MySql也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解 ...

  10. C#通用数据库操作类