一。從命令到編輯模式

a :当前单词后面插入Append
i :当前位置插入Insert
o :当前行下新开一行插入Open new line
A :当前行尾插入Append
I :当前行首插入Insert
O :当前行上新开一行插入Open new line
比較常用就是i,a,o,I,A,O了,將來多試幾次就好了,就很熟悉了。

二。從編輯到命令
ESC :

ctrl+[ :能起到一样的效果,手指短的同学可以用它代替esc。

三。命令模式中的其他命令
在命令模式中的按鍵就很多了,這些介绍参加高速编程基本要用到的,需要练熟。
在vi命令模式裡面,有的按鍵按完後他還是在命令模式,有的改個字元或copy/paste後
又回到命令模式,有的就一去不回頭變成文字編輯模式了。
有些按鍵會把你原本想改的內容做特殊的定位,例如要改個word,也會把你帶離命令模式

文件
:q 離開vi Quit
:e xxxx 編輯xxxx Edit
:w 存檔 Write
:w xxxx 另存檔案xxxx
:q! 不存檔強迫離開
:w! 強迫存檔(对于只读文件不加感叹号是不能写入的)
:wq 存檔與離開 Write 'n Quit

:bd 关闭当前窗口

游標移動
h,j,k,l 往左,往下,往上,往右 这四个不是英文单词的缩写,而是为了让手指能够更快的控制光标的移动
0 到行首
$ 到行尾
^ 到這行的第一個非空白单词

w,W 到下個单词, 到下個非空白的单词forWord
b,B 回上個单词, 到上個非空白的单词Backword
e,E 到這個单词尾, 到下個非空白的单词尾End

Ctrl-F ,Ctrl-B 往後一頁,往前一頁
G 到文件尾
:n 到第n行 (所以到文件頭就是:1)
Ctrl-G 顯示当前在第幾行
J 将下面行加到当前行Join

搜尋與取代
/
/pattern 往下尋找pattern,要注意的是几个特殊的字符必须在前面加\。这几个字符为:.*[]^%/\?~$
?pattern 往上尋找pattern
n 再往下尋找
N 再往上尋找
:s/patrn/str/cgi搜尋patrn取代str
其中:跟s間必需指定範圍(range)沒設範圍就是游標這行
1,10 表示 1-10行
% 表示整篇
最後cgi
c 表示confirm尋問
g 表示global全部
i 表示ignore不分大小寫

常用字元字串處理
cc 改變整行Change
dd 剪切整行Delet
yy 复制整行Yank
p,P 粘贴(paste) 你最近剪切或复制的Put

cw 改變一個字Change Word
d$ 砍到行尾Delete $
ye 拷貝到這個字尾Yank e

r,R 取代一個字元, 取代整行Replace
u,U 撤销最後修改,撤销整行Undo
x,X 砍一個字元, 往回砍個字元(等於按backspace)

重複的處理
. 重複剛剛的命令或輸入

以上命令很多是可以自己组合的,
有个普遍的规律是单个命令重复两次就是针对整行,后加w就是针对一个单词,中间夹一个数字就是重复的次数
比如c5w改变5个单词,d3d删除三行
這些試試看
ce, 3x, 5dd, 10w, d0, y$, 5G

indentation
>> 往右一個indent
<< 往左一個indent
== 自动缩进当前行
=G 将当前行及后面所有行都自动缩进
gg=G 先移到文件首,然后。。。嘿嘿,全文缩进

C-w j k h l 移到下 上 左 右 窗去

我的acm vim 备忘的更多相关文章

  1. vim备忘

    复制指定行 5,20co$(5到20行复制到最后一行之后) 指令模式下,c的使用方式与d相同,但删除后会进入INSERT模式 删除以某一符号开头或结尾的行 :%g/^\s/d(删除以空格开头的行) : ...

  2. vim操作命令备忘

    vim操作命令备忘 查找/替换 :%s/keyword//gn //搜索匹配的关键词数量 :%s/keywords/target //替换关键词 待续……

  3. ACM竞赛常用头文件模板-备忘

    备忘. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...

  4. ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘

    本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...

  5. mac指令备忘

    在这里简单记录下最近使用的快捷键,备忘,随时更新. 简单指令记录 mkdir 创建路径 pwd 输出当前路径 ls 查看目录 cd touch 创建文件 tree 输出目录树 mv 源文件 目标文件或 ...

  6. CentOS6.4 X86_64 kvm+PXE备忘

    Install 安装 1 2 3 4 5 # yum install qemu-kvm qemu-img # 使用kvm至少要安装的包,一个提供用户级别kvm模拟器,一个提供磁盘镜像的管理 # 安装虚 ...

  7. Linux基础之常用基本命令备忘

    Linux基础之常用基本命令备忘 PWD   查询当前所在Linux上的位置 /         根目录 CD(change directory)切换目录  语法 CD /(注意添加空格)   LS ...

  8. GIS部分理论知识备忘随笔

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.高斯克吕格投影带换算 某坐标的经度为112度,其投影的6度带和3度带 ...

  9. python序列,字典备忘

    初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...

随机推荐

  1. ABAP,学习不一样的EXCEL导出----XLSX Workbench

    这个工具是在查找ABAP导出EXCEL资料的时候发现,是国外的一位大牛自己开发的开源项目,体验了一番,确实很好用. 工具特点: No ABAP Programming Skills are requi ...

  2. innodb关键特性之double write

    # 脏页刷盘的风险 两次写的原理机制 1.解决问题 2.使用场景 3.doublewrite的工作流程 4.崩溃恢复 # doublewrite的副作用 1.监控doublewrite负载 2.关闭d ...

  3. UglifyJS-- 对你的js做了什么

    也不是闲着没事去看压缩代码,但今天调试自己代码的时候发现有点意思.因为是自己写的,虽然压缩了,格式化之后还是很好辨认.当然作为min的首要准则不是可读性,而是精简.那么它会尽量的缩短代码,尽量的保持一 ...

  4. (转)Java线程:新特征-原子量,障碍器

    Java线程:新特征-原子量   所谓的原子量即操作变量的操作是“原子的”,该操作不可再分,因此是线程安全的.   为何要使用原子变量呢,原因是多个线程对单个变量操作也会引起一些问题.在Java5之前 ...

  5. [node] node 版本更新

    一. 命令 node -v sudo npm cache clean -f // 清除缓存 sudo npm install -g n // 安装Node 模块 sudo n stable // 升级 ...

  6. nopCommerce 3.9 大波浪系列 之 开发支持多店的插件

    一.基础介绍 nop支持多店及多语言,本篇结合NivoSlider插件介绍下如何开发支持多商城的小部件. 主要接口如下: ISettingService 接口:设置接口,可实现多店配置. (点击接口介 ...

  7. JVM学习笔记一:内存管理

    参考资料 本文参考:<深入理解Java虚拟机>作者 周志明 知识产权归作者所有 走近java java组成部分:java语言.各平台虚拟机.Class文件结构.java api 类库.第三 ...

  8. Android学习笔记-ImageView(图像视图)

    本节引言: 本节介绍的UI基础控件是:ImageView(图像视图),见名知意,就是用来显示图像的一个View或者说控件! 官方API:ImageView;本节讲解的内容如下: ImageView的s ...

  9. 【css】主要的块状元素(block element)和内联元素(inline element行内元素)

      内联元素:只在行内发生作用,设置宽高不起作用,不会影响文字内容,使其换行等.竖直方向和间距也不起作用   display可以强制转换行内元素和块状元素,还可以取消显示none   块元素(bloc ...

  10. 设计模式的征途—18.策略(Strategy)模式

    俗话说条条大路通罗马,很多情况下实现某个目标地途径都不只一条.在软件开发中,也会时常遇到这样的情况,实现某一个功能有多条途径,每一条途径都对应一种算法.此时,可以使用一种设计模式来实现灵活地选择解决途 ...