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下, 字体没有什么可改的, 因为它的字体是受限于终端的设置的. 不过在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前面的冒号 ' : ' ). 如果你想要让你的字体设置根据编辑的文件(代码, 文本, 日志等等)而改变, 你可以设置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
可视模式:
v 使用v进入可视模式,然后选择任意多的文本
o 在可视模式下选中文字后,使用o即可将光标移动至被选中的另一端
y 拷贝
yy 拷贝一整行
yw 拷贝一个单词,然后使用p粘贴
文本对象:
cis 修改一个句子,表示 change inner sentence
cas 表示修改一个句子,与上面操作的区别在于as包含句子后面的空白字符
das 删除一个句子,包括句子后面的空白字符
替换模式:
R 大写的R命令可以使用连续的替换模式,使用小写r只能替换一个字符,使用退格键Backspace来回复被替换的字符。。
~ 修改光标下字符的大小写
I 大写的i在当前行的第一个非空字符开始插入
A 移动到行尾开始插入
Vim 常用技巧:的更多相关文章
-
vim常用技巧
# vim常用技巧 ## 行操作------------------------------ 行首 0- 行尾 $- 第一个非空字符 ^ ## 列编辑模式----------------------- ...
-
[skill][vim] 常用技巧与配置
一: 光标行列高亮 可以使用 :help highlight 查看相信帮助可颜色配置. set cursorline set cursorcolumn highlight Cursorline ct ...
-
vim使用技巧(插入,删除,查找,复制,粘贴,剪切)
原文链接:http://blog.csdn.net/qq_38646470/article/details/79643000 编程人员很喜欢的编辑器:vim 先搞清楚vim的三种模式: 1.命令模式: ...
-
vim 常用操作技巧
记录常用的vim操作技巧,基本满足90%的日常编辑使用. 文档操作 vim test.txt 打开当前目录下的test.txt文档,若不存在则创建该文件 :w 保存当前修改到文件 :w bak.txt ...
-
[转]vim常用命令
[转]vim常用命令 http://www.cnblogs.com/sunyubo/archive/2010/01/06/2282198.html http://blog.csdn.net/wooin ...
-
vi 常用技巧
vi/vim : Visual Interface/VI iMproved VI命令可以说是Unix/Linux世界里最常用的编辑文件的命令了,但是因为它的命令集众多,很多人都不习惯使用它,其实您只需 ...
-
无插件Vim编程技巧
无插件Vim编程技巧 http://bbs.byr.cn/#!article/buptAUTA/59钻风 2014-03-24 09:43:46 发表于:vim 相信大家看过<简明Vim教程& ...
-
无插件VIM编程技巧(网摘)
无插件VIM编程技巧 原文出处:[陈皓 coolshell] 相信大家看过<简明Vim教程>也玩了<Vim大冒险>的游戏了,相信大家对Vim都有一个好的入门了.我在这里把我日常 ...
-
Vim使用技巧汇总
一 写在开头 1.1 本文内容 Vim使用技巧与学习资源汇总. 二 Vim学习资源 1. Vimtutor 2. Vim中文帮助(http://vimcdoc.sourceforge.net/doc/ ...
随机推荐
-
Redis设计与实现(一~五整合版)【搬运】
Redis设计与实现(一~五整合版) by @飘过的小牛 一 前言 项目中用到了redis,但用到的都是最最基本的功能,比如简单的slave机制,数据结构只使用了字符串.但是一直听说redis是一个很 ...
-
hdu 4901
一个简单的dp,比赛的时候太坚信自己的小聪明没用二维数组一直WA到死: #include<cstdio> #include<cstring> #define maxn 1009 ...
-
SendMessage、PostMessage原理
SendMessage.PostMessage原理 本文讲解SendMessage.PostMessage两个函数的实现原理,分为三个步骤进行讲解,分别适合初级.中级.高级程序员进行理解,三个步骤分别 ...
-
java中说明书/开发文档如何编写?
由于在java开发时我们得到的或者给别人的文件一般都是class文件,不会给出源文件,故编写一个简洁易懂的说明书是必须的. ps: @param int[] arr 会有警告,可以删掉 int []. ...
-
从java main方法说开去(转)
刚刚接触java语言时,接触的便为一个java main方法.我们知道这样程序就可以运行了,但是程序是怎么运行起来的我们却不知道. 众所周知,当执行一个java程序时,首先会启动一个JVM虚拟机进程, ...
-
IOS开发笔记 - 基于wsdl2objc调用webservice
为了方便在ios下调用webserivce,找来了wsdl2objc这样一个开源的框架来解析webservice方便在ios下引用. 下面做个小例子. 1.首先是用Asp.net搭建一个测试的webs ...
-
Google官方网络框架Volley实战——QQ吉凶测试,南无阿弥陀佛!
Google官方网络框架Volley实战--QQ吉凶测试,南无阿弥陀佛! 这次我们用第三方的接口来做一个QQ吉凶的测试项目,代码依然是比较的简单 无图无真相 直接撸代码了,详细解释都已经写在注释里了 ...
-
以Windows服务方式运行.NET Core程序
在之前一篇博客<以Windows服务方式运行ASP.NET Core程序>中我讲述了如何把ASP.NET Core程序作为Windows服务运行的方法,而今,我们又遇到了新的问题,那就是: ...
-
[持续交付实践] Jenkins 中国用户大会参会见闻
前言 上周日在上海召开了Jenkins中国用户大会(Jenkins User Confluence China),这应该是Jenkins在中国第一次举办吧.Jenkins的创始人Kohsuke Kaw ...
-
css的再深入9(更新中&#183;&#183;&#183;)
一 单位 1.px 就是一个基本的单位 像素 2.em 也是一个单位 用父级元素的字体大小乘以em前面的数字.如果父级没有就继承上一个父级直到body,如果body没有那就默认是16px. 3.rem ...