vim 学习记录2

当前行进行替换:s/XXX/YYY/gXXX是需要替换的字符串,YYY是替换后的字符串。

全局替换:% s/XXX/YYY/g.

对指定部分进行替换用V进入visual模式,再进行:s/XXX/YYY/g.

或指定行范围 替换::100, 102s/XXX/YYY/g.

替换字符串中的"/" 用"\"转义,即用"\/"表示。

查找在:中输入? 或/ ,然后按n或N向后或向前查找

Vi指令大全

Wikipedia,自由的百科全书

进入vi的命令

vi filename: 打开或新建文件,并将光标置于第一行首

vi +n filename: 打开文件,并将光标置于第n行首

vi + filename: 打开文件,并将光标置于最后一行首

vi +/pattern filename: 打开文件,并将光标置于第一个与pattern匹配的串处

vi -r filename: 在上次正用vi编辑时发生系统崩溃,恢复filename

vi filename....filename: 打开多个文件,依次进行编辑

移动光标类命令

h: 光标左移一个字符

l: 光标右移一个字符

space: 光标右移一个字符

Backspace: 光标左移一个字符

k或Ctrl+p: 光标上移一行

j或Ctrl+n: 光标下移一行

Enter: 光标下移一行

w或W : 光标右移一个字至字首

b或B : 光标左移一个字至字首

e或E : 光标右移一个字至字尾

): 光标移至句尾

(: 光标移至句首

}: 光标移至段落开头

{: 光标移至段落结尾

nG: 光标移至第n行首

n+: 光标下移n行

n-: 光标上移n行

n$: 光标移至第n行尾

H: 光标移至屏幕顶行

M: 光标移至屏幕中间行

L: 光标移至屏幕最后行

0: 光标移至当前行首

$: 光标移至当前行尾

屏幕翻滚类命令

Ctrl+u: 向文件首翻半屏

Ctrl+d: 向文件尾翻半屏

Ctrl+f: 向文件尾翻一屏

Ctrl+b: 向文件首翻一屏

nz: 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令

i: 在光标前

I: 在当前行首

a: 光标后

A: 在当前行尾

o: 在当前行之下新开一行

O: 在当前行之上新开一行

r: 替换当前字符

R: 替换当前字符及其后的字符,直至按ESC键

s: 从当前光标位置处开始,以输入的文本替代指定数目的字符

S: 删除指定数目的行,并以所输入文本代替之

ncw或nCW: 修改指定数目的字

nCC: 修改指定数目的行

删除命令

ndw或ndW: 删除光标处开始及其后的n-1个字

do: 删至行首

d$: 删至行尾

ndd: 删除当前行及其后n-1行

x或X: 删除一个字符,x删除光标后的,而X删除光标前的

Ctrl+u: 删除输入方式下所输入的文本

搜索及替换命令

/pattern: 从光标开始处向文件尾搜索pattern
?pattern: 从光标开始处向文件首搜索pattern
n: 在同一方向重复上一次搜索命令
N: 在反方向上重复上一次搜索命令
:s/p1/p2/g: 将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g: 将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g: 将文件中所有p1均用p2替换

选项设置

all: 列出所有选项设置情况

term: 设置终端类型

ignorance: 在搜索中忽略大小写

list: 显示制表位(Ctrl+I)和行尾标志($)

number: 显示行号

report: 显示由面向行的命令修改过的数目

terse: 显示简短的警告信息

warn: 在转到别的文件时若没保存当前文件则显示NO write信息

nomagic: 允许在搜索模式中,使用前面不带“\”的特殊字符

nowrapscan: 禁止vi在搜索到达文件两端时,又从另一端开始

mesg: 允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令

:n1,n2 co n3: 将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d: 将 n1行到n2行之间的内容删除
:w: 保存当前文件
:e filename: 打开文件filename进行编辑
:x: 保存当前文件并退出
:q: 退出vi
:q!: 不保存文件并退出vi
:!command: 执行shell命令command
:n1,n2 w!command: 将文件中n1行至n2行的内容作为command的输入并执行之,
 若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command: 将命令command的输出结果放到当前行

寄存器操作

"?nyy: 将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字

"?nyw: 将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字

"?nyl: 将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字

"?p: 取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字

ndd: 将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中

时间: 2024-11-03 21:23:33

vim 学习记录2的相关文章

vim学习记录(一)入门

VIM被称为上古神器.一款小小的编辑器,外观也不起眼,神器的名号从何而来?这是吸引着我一探究竟.--在此备忘. VIM的是一款免费软件,也钦佩作者公益的行为,如果您得益于VIM且有能力的话也帮助一下乌干达儿童. VIM的帮助文档非常详尽,只可惜全部是英文不方便学习.在windows版本下面有个vimtotur(totur:private teacher)的可执行文件,非常适合入门学习,有详尽的基本操作.本文按照软件的帮助文档,记录有用的操作,及难点. 一.入门 01.初次使用VIM :gvim

vim学习记录(转)

基本功 Vim有三种模式: 导航(navigation)模式. 这时候,字母就是上下左右键. 输入模式.这时候,你按字母键,才会输入字母. 命令模式.需要先输入":" 冒号,才会进入.例如,你输入 :ls , 就相当于运行了 ls 命令. 三个模式的切换 默认的就是导航模式. 你在其他模式下,按"ESC"就回到了导航模式. 在导航模式下,输入 a, i, o等,就可以进入到输入模式. 在导航模式下,输入 : 就可以进入到命令模式. 所以,在用Vim的时候,大家用ES

vim学习记录(二)高效编辑(命令行)

直接正文,第二部分高效编辑. 一.命令行编辑 1.命令行输入 : 输入后自动跳转到命令行,接受命令输入 ? 输入后自动跳转到命令行 / 输入后自动跳转到命令行 2.命令行移动光标 left 向左移动一个字符 right 向右移动一个字符 s+left or c+left 向左移动一个单词 s+right or c+right 向右移动一个单词 c+b or home 移动到开头(begin) c+e or end 移动到结尾(end) 3.命令行删除 backspace 删除光标前一个字符 c+

Vim学习第二天

Vim学习第二天 1.w:   向后移动一个单词, b: 向前移动一个单词, 3w, 3b.... 2.$:  移动光标到行的末尾 , ^:  移动光标到行的第一个非空字符的位置 3.fx:  向后寻找本行中的x字符, Fx:向前寻找本行中的x字符 4.tx: 向后寻找本行中的x字符, 光标定位在x字符的前一个字符.Tx: 向前寻找本行的x字符,光标定位在x的前一个字符 5.3G:定位到第三行,1G:定位到第一行, G:定位到文件的末尾 6.:set number    显示行号, :set n

菜鸟vimer成长记——第0章、我眼中的vim学习

这是一系统总结vim的学习文章,记录我自己学习vim的过程和感悟.与此同时也想分享出来给大家,欢迎大家互相讨论和学习. 在这里假设你们对vim已经有了一些基本的认识或者说已经使用过几个月的vim.该系列文章里有些基础概念可能不会涉及到或者不会多做解释.一个是因为有些基础概念我目前也解释不清楚.越基础的解释起来越需要能力,目前鄙人还不具备.另一个是因为我相信各位大神们,你们已经有很好的搜索功能.当然有问题也欢迎大家互相讨论和学习. 这篇主要讲的是我当前对vim学习的理解.后面的一系列文章会针对于学

Python学习记录day1

Python学习记录博客是本人记录学习python3过程中的一些记录和过程,日后也可以帮助自己温习. python优点: 1.Python入门简单,功能强大,适用性强: 2.开发效率高,第三方库强大且多: 3.Python无需考虑底层细节: 4.可移植性,跨平台: 5.可扩展性: 6.可嵌入性,Pthon可嵌入到C/C++程序中: python缺点: 1.速度慢,Python比C慢很多,比java也慢一点: 2.代码不能加密,源码是明文: 3.线程不能利用多 CPU 问题: python版本2和

学习记录: 安装配置自动化工具ansible

学习记录:  安装配置ansible 更新日期: 2016-11-30 系统环境    :centos6.5 本机ip        :192.168.233.123 被管理机ip :192.168.233.124 ------------------------------------- py版本       :   默认python2.6 ansible版本:ansible 1.7.2 ansible参数:             -m  模块名(执行命令)              -a

vim学习之以退为进——可重复移动和可重复修改的美妙结合

时间:2014.06.29 地点:基地 ---------------------------------------------------------------------------------- 一.任务1:使修改可重复 在指定字符前后各添加一个字符.比如在连接字符串的 + 号操作前后均流出一个空格( [ ]+[ ] ) 我们知道 s命令可以删除光标下的字符进入插入模式,现在我们还可以总结一下进入插入模式的几种方式: 1. i 命令:当前光标前插入 2. a命令:当前光标后插入 3.

Chrome神器Vimium快捷键学习记录

今天下午折腾了一下Chrome下面的一个插件Vimium的使用,顿时发现该插件功能强大,能够满足减少鼠标的使用.至于为何要使用这个插件,源于我手腕上的伤一直没有好,使用鼠标的时候有轻微的疼痛.而且,由于我一般都是在SNS网站上停留,在人人和微博比较多,所以实际上发现每次看完一个一个页面都要点下一页的感觉很不爽,而同时最近在学习Vim,所以想到如果能够实现几个简单的快捷键,那么会相当方便.为此Google之,发现了这个给力的插件,以下为我的学习笔记.Vimium使用快捷键总结 j, <c-e>