基本的定义
环境变量
$VIM
/usr/share/vim
$VIMHOME
$VIMRUNTIME
n general, $VIMRUNTIME cannot be set within vimrc.
This tip is for those who want to avoid setting $VIMRUNTIME as an enviromental variable (either rc file on Unix or enviroment on Windows).
I found the following steps worked on my PC and Unix:
- Find out your $VIM (on Windows, it is the directory where gvim.exe lives).
- Create a directory called doc under $VIM (now, we have $VIM/doc).
$VIMRUNTIME='C:/usr/share/vim/vim63'
$VIMRUNTIME='/usr/share/vim/vim73' $VIMINIT $VIMHOME
set fileformat=unix " 文件换行符,dos采用CR加LF, unix采用LF (这也条语句不起作用
http://www.cnblogs.com/fengfengqingqingyangyang/archive/2012/12/06/2805483.html
FILE
新建,并且另存
快速打开最近打开文件列表
以TAB,WINDOW多窗口,多TAB的方式打开文件
首先是针对文件操作的
1.存取
:w [filename] 将编辑的数据储存成另一个档案(类似另存新档)
: sav 文字名 如 : sav C:/ont.txt 对文件来进行另存处理
2.新建以及打开文件
:new 文件名 新建一个文件。 :new 文件名
:edit 文件名 如 :edit http://www.cnblogs.com/index.php 会在当前窗口打开一个文件。
: sp 文件名 如 : 已经打开了index.php, 现在再来打开config.inc.php文件. 示例: : sp config.inc.php
:vsplit 文件名 (for a vertical division).
对窗口来进行切换:
ctrl + w 可进行切换。
ctrl+wq 可以对窗口进行切换关闭。
edit进行TAB切换
快捷键的定义
vim下的快捷键操作:
^ :如同时按下 ctrl 与v 键产生
P : 代表任意的字母,一般推荐使用大写
shell下的单选注释:
ctrl+p : SHELL环境下的单选注释
:map ^P I#<ESC>
ctrl+B: SHELL环境下的取消注释
map ^B 0x 【移到到行首,进而删除】
缩写的定义
系统层面:
调用SHELL
EDIT
显示
终端显示的字体以及color, background color
状态栏
定义状态栏(显示文件路径,格式类型,文本长度等)
:set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v]\ [%p%%]\ [LEN=%L]
状态栏的显示位置
make sure that your status line is always shown as the second-last line in the editor window:
:set laststatus=2
取消状态显示
You can always remove it for the rest of the editing session by executing the following command from within Vim
:set laststatus=0
复制,删除,粘贴
基于块的复制,删除,粘贴操作
why we use the block?
区块选择的按键意义 【不使用鼠标,来选择块】
以行或者是以单词为单位的删除操作
复原以及重做操作
选取某一部分的行数据来进行复制,删除等处理
:n1,n2d 将n1,n2之间的所有文字来进行删除
:n1,n2y 将n1,n2之间的所有文字来进行复制
替换模式
关键是 “R “ 取代模式,它可以快速的替换以及插入数据(类似于 word中的 即点即输)的功能。
全选
从clipboard中粘贴
打开cut,copy的历史记录板
快速缩进:
定义缩进的TAB,SPACE
快速注释/取消注释
自动补全
VIEW
查看文档中的换行,回车符等
编辑器以全屏视图打开
根据function,snip来进行fold.
辅助信息
文档的行数 当前光标的位置 文件的绝对存储位置,编码方式
编码
查看当前文件的编码方式
解决查看文件乱码的问题
以正确的编码书写,并且以正确的编码来进行保存
将当前文档的编码方式,进行无差别的转换.
查看UTF-8编码是否有BOM
搜索与replace
在命令模式下对于转义字符的处理
特别是对于替换来说,如果我要替换 “/www”换成”ww1”应该如何来处理
使用”\/”来对 反斜线来转义
添加一般程序的单行注释方法: “//”形式的注释
:n1,n2s/^/\/\//g 【这里^符号所代表是 键盘中的6上的那个键】
多行的”#”号注释
:n1,n2s/^/#/g 【在行首添加#号】
取消”#”号的注释
:n1,n2s/^#//g 【在指定的范围下,将行首(所以一定要添加^号)替换成空】 则代表进行注释
查看当前文档
在多个文档中,查找某一个关键词
在指定目录下,以文件后缀名(如.css,.js) 来查找某一个关键词
正则表达式搜索应用
1.大小写匹配
2. 全词匹配
3. 统计查找所出现的次数
行号的设置以及取消
:set nu //设置行号
:set nonu //取消行号
自动缩排
状态栏的说明值
查看自己进行了的设定值
背景色的设置
:set bg=dark
:set bg=light
可用以显示丌同的颜色色调,预设是『 light 』。如果你常常现批注癿字体为深蓝色实在很容易看, 那么这里可以设定为 dark 喔!
自动为光标行来进行标色
要分成两步走,一个为定义着色;再进行对着光标移动添加着色
:highlight CursorLine guibg=lightblue ctermbg=lightgray
启动方案的说明
:set cursorline
效果:
编辑文件时,自动对文件来进行备份
:set backup 是否自动存储备份文件,当进行编辑文件时,会自动的生成一个文件
对程序文件来进行语法高亮
//Just issue the command: 来启动语法高亮
:syntax enable
:syntax on
//还有一种情况,就是vim来自动的识别文件类型,来针对性的高亮
If you still see no syntax highlights, Vim may not know what your file type is and thus
not understand which syntax is appropriate.
//识别 shell脚本的高亮
:set syntax=sh
//识别PHP的脚本高亮
:set syntax=php
让vim也能使用outline以及代码折叠
1.进行折叠
Create a fold covering count lines, starting with the current line.
followed by the letter O, not z followed by a zero).
让程序自动来进行缩进
//Auto indentation closely mimics vi’s autoindent.
:set autoindent
//以下是有C语言特点的缩进
:set smartindent
:set cindent
??对于如何来对其它语言来进行缩进,未完成
对程序代码来进行自动的提示
对于程序代码的自动提示功能,它一般有两种:一种为基于语言字典的。另一种则为本文件中的代码记忆功能。
vim与文件乱码的解决
Vim 可以很好的编辑各种字符编码的文件,包括 UCS-2、UTF-8 等流行的 Unicode 编码方式:
Vim 有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding,它们的意义如下:
* encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等;
* fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此);
* fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding设置为最终探测到的字符编码方式。因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面;
* termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。
Vim 的多字符编码的工作方式:
1. Vim 启动,根据 .vimrc 中设置的 encoding 的值来设置 buffer、菜单文本、消息文的字符编码方式;
2. 读取需要编辑的文件,根据 fileencodings 中列出的字符编码方式逐一探测该文件编码方式。并设置 fileencoding 为探测到的,看起来是正确的 (注1) 字符编码方式;
3. 对比 fileencoding 和 encoding 的值,若不同则调用 iconv 将文件内容转换为 encoding 所描述的字符编码方式,并且把转换后的内容放到为此文件开辟的 buffer 里,此时我们就可以开始编辑这个文件了。注意,完成这一步动作需要调用外部的 iconv.dll (注2),你需要保证这个文件存在于 $VIMRUNTIME 或者其他列在 PATH 环境变量中的目录里;
4. 编辑完成后保存文件时,再次对比 fileencoding 和 encoding 的值。若不同,再次调用 iconv 将即将保存的 buffer 中的文本转换为 fileencoding 所描述的字符编码方式,并保存到指定的文件中。同样,这需要调用 iconv.dll。
由于 Unicode 能够包含几乎所有的语言的字符,而且 Unicode 的 UTF-8 编码方式又是非常具有性价比的编码方式 (空间消耗比 UCS-2 小),因此建议 encoding 的值设置为 utf-8。这么做的另一个理由是 encoding 设置为 utf-8 时,Vim 自动探测文件的编码方式会更准确 (或许这个理由才是主要的 ;)。我们在中文 Windows 里编辑的文件,为了兼顾与其他软件的兼容性,文件编码还是设置为 GB2312/GBK 比较合适,因此 fileencoding 建议设置为 chinese (chinese 是个别名,在 Unix 里表示 gb2312,在 Windows 里表示 cp936,也就是 GBK 的代码页)。
注1: 事实上,Vim 的探测准确度并不高,尤其是在 encoding 没有设置为 utf-8 时。因此强烈建议将 encoding 设置为 utf-8,虽然如果你想 Vim 显示中文菜单和提示消息的话这样会带来另一个小问题。
注2: 在 GNU 的 FTP 上可以下载到 iconv 的 Win32 版(http://mirrors.kernel.org/gnu/libiconv/libiconv-1.9.1.bin.woe32.zip)。
注3: 查看帮助 :h iconv-dynamic。
注4: 前方中提到的.vimrc在windows下为_vimrc,存在于vim安装目录下。
以下为在windows下gvim7.2地配置文件_vimrc,使用此配置可解决安装中文版vimdoc后出现的菜单、控制台信息等乱码现象。
set encoding=utf-8
set fileencodings=utf-8,chinese,latin-1
if has("win32")
set fileencoding=chinese
else
set fileencoding=utf-8
endif
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
language messages zh_CN.utf-8
用vim比较文件
1. 使用vim的比较模式打开两个文件:
vim -d file1 file2
或
vimdiff file1 file2
2. 如果已经打开了文件file1,再打开另一个文件file2进行比较:
:vert diffsplit file2
如果没有用vert命令,diffsplit则会分上下两个窗口。
3. 如果已经用split方式打开了两个文件file1,file2,又想比较两文件的不同。
分别在两个窗口里面输入命令:
:diffthis
4. 如果更改了某个窗口的内容,vim又没有自动更新diff检查,可以使用如下命令更新:
:diffupdate
5. 定位到不同点:
[c 跳到前一个不同点
]c 跳到后一个不同点
6. 在窗口间跳转:
ctrl-w w 跳到下一个窗口
ctrl-w h 跳到左侧窗口
ctrl-w l 跳到右侧窗口
ctrl-w j 跳到下方的窗口
ctrl-w k 跳到上方的窗口
7. 合并文档:
dp 将差异点的当前文档内容应用到另一文档(diff put)
do 将差异点的另一文档的内容拷贝到当前文档(diff get)
8. 上下文的展开和查看
比较和合并文件的时候经常需要结合上下文来确定最终要采取的操作。Vimdiff 缺省是会把不同之处上下各 6 行的文本都显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数为3行,可以这样设置:
:set diffopt=context:3
复制几个字符
另起一行,来进行插入
o Open a new line below and insert.
O Open a new line above and insert.
全选
:%y a
可以用简单的折叠命令来临时展开被折叠的相同的文本行:
zo (folding open, z这个字母看上去比较像折叠的纸)
summary usage of vim on movement
快捷插入
A
Append text to end of current line.
I
Insert text at beginning of line.
i
在当前插入
o (lowercase letter “o”)
Open blank line below cursor for text.
O (uppercase letter “o”)
Open blank line above cursor for text.
针对当前行的快速移动
针对当前行的移动 :
H
Left, one space 10h 在光标处,向左移10个space
j
Down, one line 10j 在光标处,向下移10个行
k
Up, one line 向上移10行。
l
Right, one space 向右行10个space
针对单词的移动
movement by w(小写):
The w command moves the cursor forward one word at a time。
symbols and punctuation as equivalent to words. (不区分大小写)
using the W command(大写):
You can also move by word, not counting symbols and punctuation.
use the b (小写) command:backward
To move backward by word.
using the B command(大写):backward
You can also move by word, not counting symbols and punctuation.
针对同一行的移动
0 这是数字『 0 』:移动到这一行的最前面字符处(常用)
$ 移动到这一行的最后面字符处(常用)
向右
n<space> 按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。
如: 20<space>
3.vim与多文件编辑操作
vim fstab fstab.back
多文件的编辑:
:n 编辑下一个文件
:N 编辑上一个文件
: files 列出当前所编辑的文件的详细信息
4.对窗口来进行放大以及缩小
:resize n sets the horizontal size of the current window to n lines
常用操作:
1.对打开的文本来进行全选
快速全部选中: ggVG
2. 在多个文件中搜索某一个特定的字符串
两种方式:
外置的grep搜索
内置的vimgrep进行搜索
:vimgrep /pattern/[j][g] file file2... fileN
The pattern needs to be enclosed in /, and after the last / you can add either of the two flags j and g.
Useful commands for the quickfix list (brackets around omittable part of the commands):
-
:cn[ext]
and:cp[revious]
jump to next and previous entry -
:cnf[ile]
and:cpf[ile]
jump to next and previous file (if the quickfix list is not sorted by file
To show your quickfix list with the vimgrep result, simply use
the :clist command or navigate to next / previous match with
:cnext / :cprevious.
Personally I have the following maps :
| �0�3 | SHIFT | CTRL
------+--------+---------+---------
<F11> | :cprev | :cpfile | :colder
<F12> | :cnext | :cnfile | :cnewer
列出所有的搜索结果(所有的前提都是以:vim,:vimgrep来搜索出结果之后)
:copen Open the quickfix window
:clist
Command Action
:cnext Jump to next item
:cprev Jump to previous item
:cfirst Jump to first item
:clast Jump to last item
:cnfile Jump to first item in next file
:cpfile Jump to last item in previous file
:cc N Jump to nth item
:copen Open the quickfix window
:cclose Close the quickfix window
:5cnext
So instead of stepping through every item in the quickfix list one by one, we could skip through them five at a time by running this
快速的打开导航文件:
The quickfix window has special behavior of its own. If we position our cursor
on it and press the <CR> key,
对于多文件的替换
3. 在文件中,对于特定字符的搜索以及替换,如[,/等常用关键字
vim中的常见特殊字符: $,^,.,\,>,\,<,*
两种方式:
1. 使用命令模式设置
Allow special characters in searches magic
set nomagic set magic
2. 使用正则表达式的转义
$ –> \$
. –> \. [替换时使用]
4. 在VIM中,使用正则表达式匹配搜索
完整的只替换某一个单词
/ \<and\> Finds the next occurrence of the word and
:1,$s/\<off\>/OFF/gc
简单的匹配:
[A-Za-z] 匹配任何一个字符
[adr] 匹配任何一个字符
/ \<word\> 匹配单个单词
vim与正则表达式的引用
:s/\<short\>/"&"/
Replaces the word short on the current line with "short" (enclosed within quotation marks
the shortest of the short → the shortest of the "short"
相关推荐
资源名称:Linux系统中vim设置tab键的宽度资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
超强的vim设置代码,总共800行,实现各种功能
每个插件的目录下的conf.vim中有更多的设置及说明 "FuzzyFinder fuf.vim模糊查找 source ~/.vim/bundle/fuzzyfinder/conf.vim "NERD_commenter.vim source ~/.vim/bundle/nerdcommenter/conf.vim "单独切换打开...
这篇博文主要探讨的是Vim的设置文件——`.vimrc`,它是Vim启动时读取的初始化脚本,用于设定各种快捷键、选项和行为。 首先,`.vimrc`文件是Vim的配置中心,通常位于用户的主目录下。在Linux和Unix系统中,这个文件...
jeffy-vim 很强的一个vim插件及配置 但安装之后出现下划线,那就需要进行设置, 可以在shell终端输入命令:vi ~/.vimrc 然后找到set cursorline 那一行,直接通过dd命令删除掉,退出保存即可
### Vim颜色设置详解 #### 一、引言 在日常编程与文本编辑过程中,Vim 是一款非常强大的工具。为了提高工作效率以及个性化编辑环境,掌握 Vim 的颜色设置是非常必要的。本文将详细介绍 Vim 颜色设置的方法及步骤,...
**vimrc** 文件是Vim的配置文件,它是个人化Vim设置的核心。每个用户都可以根据自己的需求定制vimrc,包含快捷键绑定、颜色方案、自动缩进规则等。在这个上下文中,可能意味着更新vimrc以引入新添加的插件并优化它们...
下载vimconfig.tar.tgz,将文件拷贝到ubuntu, 执行下面命令: tar zxvf vimconfig.tar.tgz cd vimconfig cp .* ~/ -rvf 部分配置情况: "-------------TagList--------------- "设置ctags路径 let Tlist_Ctags_Cmd ...
**eric.vim: 我的Vim设置** `eric.vim` 是一个个人化的Vim配置集合,旨在提供一个易用且易于维护的环境。它包含了一系列精心挑选的插件、映射、设置和配置,以优化Vim的用户体验。通过这个配置,用户可以快速上手,...
将压缩包解压后,将其中.vim/plugin/automatic.vim 拷贝到你home目录下相同目录中(.vim/plugin/),同时也拷贝.vim/after将home目录下.vim/, after目录下是一些图标,默认是linux平台下的图标。
因此,"vim中UVM高亮配置"意味着我们需要为Vim设置特定的规则,以便在编辑UVM代码时突出显示关键字、函数、类等元素,提升编程效率。 首先,我们需要了解Vim是如何进行语法高亮的。在Vim中,语法高亮通过`syntax`...
用户可以通过`~/.vimrc`文件自定义vim设置,如设置颜色方案、快捷键映射、插件管理等,使vim更加符合个人习惯。 **七、学习资源** 1. Vimtutor:内置教程,通过`vimtutor`命令启动。 2. 官方文档:详尽的vim手册页...
一个还算不错的vimrc文件, vim写C和c++代码必备,含ctag cscope, 窗口等快捷方式
适合对vimrc有所追求的人下载,各种插件在.vimrc中都有注释,但是.vimrc中有一些我工作上的设置,我没有去掉,直接上传也是为了在CSDN上有个备份。vimrc中的设置也是我一点一点积累下来的,许多也是参考他人的成就。...
我的VIM设置 这是我当前的VIM设置。 它由一堆插件,一些映射,颜色,字体和特定的VIM设置组成。 该设置非常以Python / reStructured Text为中心,因为这些是我使用的主要语言,但是可以轻松地适应其他语言。 C和...
我的极简主义Vim设置我开始认为我必须发布此存储库。 有一天,我可能会四处走动,因为我必须使用别人的计算机。 如果我可以克隆此存储库以构建具有与我的Vim编辑器相同的功能和设置的Vim编辑器,对我来说将很方便。...
Vim 自用的vim配置,适用于 Go与c++语言最小开发环境。 注:只在MacOS与Linux下VIM8+与NeoVim上测试验证过。配置参考了,在此感谢。 安装 Linux & MacOS # download xvim cd ~ git clone ...
**vim:我的 vim 设置** Vim 是一个高度可配置的文本编辑器,以其高效和强大的功能深受程序员和系统管理员喜爱。在深入探讨个人 Vim 设置之前,我们先了解一下 Vim 的基本概念。 1. **Vim 模式** - **正常模式...
在这个"Vim设置"的主题下,我们将深入探讨如何配置和优化Vim以适应个人的工作习惯。 首先,Vim的配置主要通过一个名为`.vimrc`的启动配置文件进行。这个文件位于用户主目录下,用于定义Vim的行为、快捷键和插件设置...