Vim 常用技巧:

将回车由默认的8个空格改为4个空格:

命令:set sw=4

修改tab为4空格:

命令:set ts=4

设置每一级的缩进长度:

命令:set shiftwidth=4

设置文件的编码:

set fileencoding=utf-8

进入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 :光标右移一个字至字尾

ge:移动到前一个词的末尾

) :光标移至句尾

( :光标移至句首

}:光标移至段落开头

{:光标移至段落结尾

nG:光标移至第n行首

n+:光标下移n行

n-:光标上移n行

n$:光标移至第n行尾

H :光标移至屏幕顶行

M :光标移至屏幕中间行

L :光标移至屏幕最后行

0:(注意是数字零)光标移至当前行首

^:移动至当前行的第一个非空字符

$:光标移至当前行尾

%:移动到大括号,小括号,中括号对应的另一半括号上。

gg:移动到文档首

nG:移动到第n行首

G:移动到文档尾

50%:移动到文件中间

H:移动到视野首行

M:移动到视野中间

L:移动到视野尾行

Ctrl+G:显示文件名,总行数,当前位置

cd:显示当前的工作目录

ma [a-z] 对特定位置进行标记,使用‘x或`x跳转到标记位置处,使用’‘或``跳回刚才位置

屏幕翻滚类命令

Ctrl+u:向文件首翻半屏

Ctrl+d:向文件尾翻半屏

Ctrl+f:向文件尾翻一屏

Ctrl+b;向文件首翻一屏

Ctrl+e:向问价尾滚一行

zz:将光标置于屏幕中间

zt:把光标移至屏幕顶部

zb:把光标移至屏幕底部

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

set scrolloff=n:将光标置于第n行处

插入文本类命令

i :在光标前

I :在当前行首

a:光标后

A:在当前行尾

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

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

r:替换当前字符

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

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

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

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

nCC:修改指定数目的行

删除命令

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

dw  删除一个单词

daw    删除一个单词和单词后面的空格字符

do:删至行首

d$:删至行尾

dn:删除n+1行

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

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

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

J: 将光标所在行与下一行之间的换行符删掉

撤销命令:

u:撤销之前的操作,例如删除操作

Ctrl+R 重做刚才的操作

.    使用点符号重复最后一次的修改操作

搜索及替换命令

/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替换

set ignorcase   查找时忽略大小写

set noignorecase   查找时区分大小写

set hlsearch 设置查询结果高亮显示

set nohlsearch 取消查询结果高亮显示

选项设置

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号删除寄存器中。



Vim更改字体
2011年07月24日 星期日 上午 3:35

在常规Vim下, 字体没有什么可改的, 因为它的字体是受限于终端的设置的. 不过在GVim中, 你就有可以想怎么改字体就怎么改了.

Linux下改字体的主要命令就是这样的:

:set guifont=Courier\ 14

你可以把Courier改成任何你想要的字体, 14就是你想要改的字体大小(单位是pt).

想要改Windows下的字体, 就要用下面的命令:

:set guifont=Courier:14

如果你不确定你的电脑上是否有那种字体, 你可以向下面这样, 在上面的命令后加一个逗号, 然后加上另一个字体. 如:

:set guifont=Courier\ New\ 12, Arial\ 10

如果你的字体名中有空格或者逗号, 你就需要用一个反斜线转义了. 如:

:set guifont=Courier\ New\ 12

这个命令就是将字体设成Courier New, 大小为12号, 不过只是在本次会话(session)中可用, 即关闭Gvim后, 又会回到原来的配置. 如果你想每次编辑文件都能使用这个字体, 就应该在gvimrc文件中加上一行上面同样的命令(但注意不要set前面的冒号 ' : ' ).

[注] 当你在Windows, Linux(使用GTK+), Mac OS, 或者Photon, 你可以使用下面的字体来打开一个字体列表:
:set guifont=*

如果你想要让你的字体设置根据编辑的文件(代码, 文本, 日志等等)而改变, 你可以设置Vim让它通过文件的类型来改变当前的字体. 如, 如果你想在每次打开一个文本文件(.txt)时使用Arial 12号字体, 那你可以在vimrc文件中加上这样一条:

autocmd BufEnter *.txt set guifont=Arial\ 12

Gvim窗口会在每次字体的改变在自动地改变窗口大小. 也就是说你使用了一个小的字体, 你就会默认地得到一个小的窗口. 如果你有几个像上面的那样的配置, 几个不同的文件类型, 对应着几个不同的字体, 你会很明显地感觉这种变化. 当你用打开了另一种类型的文件时, 字体和窗口大小都会改变.

[注] 你可以在Vim帮助系统中知道更多的关于改变字体的信息, 通过:help 'guifont'




一、vim打开文档:

1. vim 文档名   普通方式打开文档

2. vim +n 文档名      打开文档后,定位第n行

3. vim ,进入vim界面之后使用命令 :e 文档名 打开文档,此方式可以在编辑一个文档的同时打开另外一个文档

4.显示当前文档目录:先按1,然后Ctrl+G

5. cd  #改变vim的当前工作路径

6.lcd  #改变当前窗口的工作目录

7.pwd  #查看当前的工作路径

8.set autochdir  #自动设当前编辑的文件所在目录为当前工作目录

二、多文档编辑:

1. vim 文档1名 文档2名 ...

2. vim ,进入vim后使用:e 文档名 打开文档

3.多文档编辑的命令如下

:n          编辑下一个文档。

:2n        编辑下两个文档。

:N          编辑上一个文档。注意,该方法只能用于同时打开多个文档。

:e 文档名        这是在进入vim后,不离开 vim 的情形下打开其他文档。

:e# 或 Ctrl+ˆ      编辑上一个文档,用于两个文档相互交换编辑时使用。?# 代表的是编辑前一次编辑的文档

:files 或 :buffers 或 :ls     可以列出目前 缓冲区 中的所有文档。加号 + 表示 缓冲区已经被修改过了。#代表上一次编辑的文档,%是目前正在编辑中的文档

:b 文档名或编号      移至该文档。

:f  或 Ctrl+g     显示当前正在编辑的文档名称。

:f 檔名         改变编辑中的文档名。(file)

三、离开vim

:q      如果文本没有修改,则会退出,否则会出现警告,且不能离开。

:q!     放弃所有修改,强行离开。

:wq     保存后离开即使文档没有修改过,也会再保存一次。

:x        保存后离开,文档如果没有修改过则不会进行保存动作,直接离开。

:w 文档名   即:另存为。不加文档名则是写入原文档。

:qa 或 qa! 在打开多文档的情况下离开 vim。a 即 all 的意思。

:ZZ  保存并退出当前文本

将外部内容添加到已经打开的文档使用以下命令(双引号+加号+p):

"+p

四、 多窗口编辑

:sp 文档名  在新窗口中打开文档

Ctrl+w+n新建一个窗口

两次Ctrl + w可以切换窗口

Ctrl+t  跳转至上一个窗口

:q  退出当前编辑窗口

帮助文档中使用  Ctrl+] 来跳转超链接,使用Ctrl+T或者Ctrl+O来跳转到前一个位置。

修改文本的三种方法:

操作符-动作,可视模式以及文本对象

c2wxxx  修改两个单词的距离,并插入xxx

cc    会修改一整行(会保留这一行的缩进)

c$    修改到行尾

x=dl    删除当前光标下的一个字符

X=dh    删除光标左边的字符

D=d$    删除到行尾

C=c$    修改到行尾

s=cl   修改一个字符

S=cc    修改一整行

p    在光标后面粘贴刚才删除的内容

P    在光标前面粘贴刚才删除的内容

xp    先删除,再粘贴,删除一个字符之后粘贴到另一个字符的后面,例如teh操作之后就变成了the

x    删除光标下的字符 ("dl" 的缩写)
X    删除光标前的字符 ("dh" 的缩写)
D    从当前位置删除到行尾 ("d$" 的缩写)
dw    从当前位置删除到下一个单词开头
db    从当前位置删除到前一个单词的开头
diw    删除光标上的单词 (不包括空白字符)
daw    删除光标上的单词 (包括空白字符)
dG    删除到文件末
dgg    删除到文件首
 
 

可视模式:

v   使用v进入可视模式,然后选择任意多的文本

o   在可视模式下选中文字后,使用o即可将光标移动至被选中的另一端

y  拷贝

yy 拷贝一整行

yw 拷贝一个单词,然后使用p粘贴

文本对象:

cis    修改一个句子,表示 change inner sentence

cas    表示修改一个句子,与上面操作的区别在于as包含句子后面的空白字符

das    删除一个句子,包括句子后面的空白字符

替换模式:

R   大写的R命令可以使用连续的替换模式,使用小写r只能替换一个字符,使用退格键Backspace来回复被替换的字符。。

~    修改光标下字符的大小写

I     大写的i在当前行的第一个非空字符开始插入

A    移动到行尾开始插入

Vim 常用技巧:的更多相关文章

  1. vim常用技巧

    # vim常用技巧 ## 行操作------------------------------ 行首 0- 行尾 $- 第一个非空字符 ^ ## 列编辑模式----------------------- ...

  2. [skill][vim] 常用技巧与配置

    一:  光标行列高亮 可以使用 :help highlight 查看相信帮助可颜色配置. set cursorline set cursorcolumn highlight Cursorline ct ...

  3. vim使用技巧(插入,删除,查找,复制,粘贴,剪切)

    原文链接:http://blog.csdn.net/qq_38646470/article/details/79643000 编程人员很喜欢的编辑器:vim 先搞清楚vim的三种模式: 1.命令模式: ...

  4. vim 常用操作技巧

    记录常用的vim操作技巧,基本满足90%的日常编辑使用. 文档操作 vim test.txt 打开当前目录下的test.txt文档,若不存在则创建该文件 :w 保存当前修改到文件 :w bak.txt ...

  5. [转]vim常用命令

    [转]vim常用命令 http://www.cnblogs.com/sunyubo/archive/2010/01/06/2282198.html http://blog.csdn.net/wooin ...

  6. vi 常用技巧

    vi/vim : Visual Interface/VI iMproved VI命令可以说是Unix/Linux世界里最常用的编辑文件的命令了,但是因为它的命令集众多,很多人都不习惯使用它,其实您只需 ...

  7. 无插件Vim编程技巧

    无插件Vim编程技巧 http://bbs.byr.cn/#!article/buptAUTA/59钻风 2014-03-24 09:43:46 发表于:vim  相信大家看过<简明Vim教程& ...

  8. 无插件VIM编程技巧(网摘)

    无插件VIM编程技巧 原文出处:[陈皓 coolshell] 相信大家看过<简明Vim教程>也玩了<Vim大冒险>的游戏了,相信大家对Vim都有一个好的入门了.我在这里把我日常 ...

  9. Vim使用技巧汇总

    一 写在开头 1.1 本文内容 Vim使用技巧与学习资源汇总. 二 Vim学习资源 1. Vimtutor 2. Vim中文帮助(http://vimcdoc.sourceforge.net/doc/ ...

随机推荐

  1. 「JavaScript」四种跨域方式详解

    超详细并且带 Demo 的 JavaScript 跨域指南来了! 本文基于你了解 JavaScript 的同源策略,并且了解使用跨域跨域的理由. 1. JSONP 首先要介绍的跨域方法必然是 JSON ...

  2. PHP扩展开发及内核应用

    目录中汉字部分代表已经翻译完成的章节,带链接的表示已经发布的,未待链接的表示正在校正即将发布的. PHP的生命周期 让我们从SAPI开始 PHP的启动与终止 PHP的生命周期 线程安全 小结 PHP变 ...

  3. web分享QQ好友、QQ空间、新浪微博的api接口

    QZone: "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url={{URL}}&title={{TITL ...

  4. 增加VirtualBox虚拟机的磁盘空间大小(Host:Win7 VirtualBox5.0.16 VM:Win10)

    1 前言 网上关于增加VirtualBox虚拟机的磁盘空间大小的文章非常非常多,这里我之所以再写一篇,是因为在参照这些文章做的时候,由于VirtualBox的版本更新以及其他一些环境问题,碰到到一些问 ...

  5. ResultSet用法集锦

    ResultSet用法集锦 结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数 ...

  6. viewport设置

    <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable ...

  7. scrapy的scrapyd使用方法

    一直以来,很多人疑惑scrapy提供的scrapyd该怎么用,于我也是.自己在实际项目中只是使用scrapy crawl spider,用python来写一个多进程启动,还用一个shell脚本来监控进 ...

  8. ImageView cannot be resolved to a type

    问题: ImageView cannot be resolved to a type 报这样的错误是没有加载MainActivity.java文件中加入 import android.widget.I ...

  9. Good Bye 2015 D. New Year and Ancient Prophecy

    D. New Year and Ancient Prophecy time limit per test 2.5 seconds memory limit per test 512 megabytes ...

  10. JavaScript随笔目录

    DOM DOM节点 浏览器环境 遍历节点 DOM的基本属性 Attribute和自定义Property 在DOM中搜索元素 对文档进行操作