gvim 设置
VIM 中可供用户定制的选项非常非常多, 作为初学者, 我们没有必要了解这么多东西。下面, 滇狐简单列出了一些最常用的配置项, 大家可以根据自己的需要将这些内容添加到自己的 .vimrc 中。
1 基本设置
set nocp
该命令指定让 VIM 工作在不兼容模式下。 在 VIM 之前, 出现过一个非常流行的编辑器叫 vi。 VIM 许多操作与 vi 很相似, 但也有许多操作与 vi 是不一样的。 如果使用”:set cp”命令打开了兼容模式开关的话, VIM 将尽可能地模仿 vi 的操作模式。
也许有许多人喜欢”最正统的 vi”的操作模式, 对于初学者来说, vi 里许多操作是比较不方便的。
举一个例子, VIM 里允许在 Insert 模式下使用方向键移动光标, 而 vi 里在 Insert 模式下是不能移动光标的, 必须使用 ESC 退回到 Normal 模式下才行。
再举一个例子, vi 里使用 u 命令可以撤消一次先前的操作, 再次按下 u 时, 将撤消”撤消”这
set nocp
该命令指定让 VIM 工作在不兼容模式下。 在 VIM 之前, 出现过一个非常流行的编辑器叫 vi。 VIM 许多操作与 vi 很相似, 但也有许多操作与 vi 是不一样的。 如果使用”:set cp”命令打开了兼容模式开关的话, VIM 将尽可能地模仿 vi 的操作模式。
也许有许多人喜欢”最正统的 vi”的操作模式, 对于初学者来说, vi 里许多操作是比较不方便的。
举一个例子, VIM 里允许在 Insert 模式下使用方向键移动光标, 而 vi 里在 Insert 模式下是不能移动光标的, 必须使用 ESC 退回到 Normal 模式下才行。
再举一个例子, vi 里使用 u 命令可以撤消一次先前的操作, 再次按下 u 时, 将撤消”撤消”这
个动作本身, 也就是我们常说的”重复”(redo)。 而 VIM 里可以使用 u 命令撤消多步操作, “重复”使用的快捷键是 Ctrl + R。
使 用兼容模式后, VIM 将放弃这些新的功能, 尽量模仿 vi 的各种操作方式。 只有在不兼容模式下, 才能更好地发挥 VIM 自身的特点。 Bram 爷爷强烈推荐大家使用 VIM 的不兼容模式, 滇狐也是这样推荐的。 请务必在你的 .vimrc 中的第一行写上: “set nocp”。
set ru
该命令打开 VIM 的状态栏标尺。 默认情况下, VIM 的状态栏标尺在屏幕底部, 它能即时显示当前光标所在位置在文件中的行号、列号, 以及对应的整个文件的百分比。 打开标尺可以给文件的编辑工作带来一定方便。
set hls
搜索时高亮显示被到的文本。 该指令的功能在 vimtutor 中已经有过介绍, 这里就不多说了。 其实似乎许多人并不喜欢这个功能。
set is
搜索时在未完全输入完毕要检索的文本时就开始检索。 vimtutor 对该命令也有过介绍, 滇狐并不喜欢这个功能, 因此滇狐自己的配置文件里是没有这条命令的。 但是周围有朋友很喜
使 用兼容模式后, VIM 将放弃这些新的功能, 尽量模仿 vi 的各种操作方式。 只有在不兼容模式下, 才能更好地发挥 VIM 自身的特点。 Bram 爷爷强烈推荐大家使用 VIM 的不兼容模式, 滇狐也是这样推荐的。 请务必在你的 .vimrc 中的第一行写上: “set nocp”。
set ru
该命令打开 VIM 的状态栏标尺。 默认情况下, VIM 的状态栏标尺在屏幕底部, 它能即时显示当前光标所在位置在文件中的行号、列号, 以及对应的整个文件的百分比。 打开标尺可以给文件的编辑工作带来一定方便。
set hls
搜索时高亮显示被到的文本。 该指令的功能在 vimtutor 中已经有过介绍, 这里就不多说了。 其实似乎许多人并不喜欢这个功能。
set is
搜索时在未完全输入完毕要检索的文本时就开始检索。 vimtutor 对该命令也有过介绍, 滇狐并不喜欢这个功能, 因此滇狐自己的配置文件里是没有这条命令的。 但是周围有朋友很喜
欢这个, 因此滇狐还是将它列在这里。
syntax on
打开关键字上。 进行程序设计的朋友应该都知道关键字上是什么东西, 因此这里就不多说了。 不进行程序设计的朋友不妨也打开这个功能, 虽然不一定能够用得着, 但这个功能其实也是很好玩的。
set backspace=indent,eol,start
设 想这样一个情况: 当前光标前面有若干字母, 我们按下 i 键进入了 Insert 模式, 然后输入了 3 个字母, 再按 5 下删除(Backspace)。 默认情况下, VIM 仅能删除我们新输入的 3 个字母, 然后喇叭”嘟嘟”响两声。 如果我们”set backspace=start”, 则可以在删除了新输入的 3 个字母之后, 继续向前删除原有的两个字符。
再设想一个情况: 有若干行文字, 我们把光标移到中间某一行的行首, 按 i 键进入 Insert 模式, 然后按一下 Backspace。 默认情况下, 喇叭会”嘟”一声, 然后没有任何动静。 如果我们”set backspace=eol”, 则可以删除前一行行末的回车, 也就是说将两行拼接起来。
当我们设置了自动缩进后, 如果前一行缩进了一定距离, 按下回车后, 下一行也会保持相同的缩进。 默认情况下, 我们不能在 Insert 模式下直接按 Backspace 删除行首的缩进。 如
syntax on
打开关键字上。 进行程序设计的朋友应该都知道关键字上是什么东西, 因此这里就不多说了。 不进行程序设计的朋友不妨也打开这个功能, 虽然不一定能够用得着, 但这个功能其实也是很好玩的。
set backspace=indent,eol,start
设 想这样一个情况: 当前光标前面有若干字母, 我们按下 i 键进入了 Insert 模式, 然后输入了 3 个字母, 再按 5 下删除(Backspace)。 默认情况下, VIM 仅能删除我们新输入的 3 个字母, 然后喇叭”嘟嘟”响两声。 如果我们”set backspace=start”, 则可以在删除了新输入的 3 个字母之后, 继续向前删除原有的两个字符。
再设想一个情况: 有若干行文字, 我们把光标移到中间某一行的行首, 按 i 键进入 Insert 模式, 然后按一下 Backspace。 默认情况下, 喇叭会”嘟”一声, 然后没有任何动静。 如果我们”set backspace=eol”, 则可以删除前一行行末的回车, 也就是说将两行拼接起来。
当我们设置了自动缩进后, 如果前一行缩进了一定距离, 按下回车后, 下一行也会保持相同的缩进。 默认情况下, 我们不能在 Insert 模式下直接按 Backspace 删除行首的缩进。 如
果我们”set backspace=indent”, 则可以开启这一项功能。
上述三项功能, 你可以根据自己的需要, 选择其中一种或几种, 用逗号分隔各个选项。 建议把这三个选项都选上。
set whichwrap=b,s,<,>,[,]
默 认情况下, 在 VIM 中当光标移到一行最左边的时候, 我们继续按左键, 光标不能回到上一行的最右边。 同样地, 光标到了一行最右边的时候, 我们不能通过继续按右跳到下一行的最左边。 但是, 通过设置 whichwrap 我们可以对一部分按键开启这项功能。 如果想对某一个或几个按键开启到头后自动折向下一行的功能, 可以把需要开启的键的代号写到 whichwrap 的参数列表中, 各个键之间使用逗号分隔。 以下是 whichwrap 支持的按键名称列表:
b
在 Normal 或 Visual 模式下按删除(Backspace)键。
s
在 Normal 或 Visual 模式下按空格键。
h
上述三项功能, 你可以根据自己的需要, 选择其中一种或几种, 用逗号分隔各个选项。 建议把这三个选项都选上。
set whichwrap=b,s,<,>,[,]
默 认情况下, 在 VIM 中当光标移到一行最左边的时候, 我们继续按左键, 光标不能回到上一行的最右边。 同样地, 光标到了一行最右边的时候, 我们不能通过继续按右跳到下一行的最左边。 但是, 通过设置 whichwrap 我们可以对一部分按键开启这项功能。 如果想对某一个或几个按键开启到头后自动折向下一行的功能, 可以把需要开启的键的代号写到 whichwrap 的参数列表中, 各个键之间使用逗号分隔。 以下是 whichwrap 支持的按键名称列表:
b
在 Normal 或 Visual 模式下按删除(Backspace)键。
s
在 Normal 或 Visual 模式下按空格键。
h
在 Normal 或 Visual 模式下按 h 键。
l
在 Normal 或 Visual 模式下按 l 键。
<
在 Normal 或 Visual 模式下按左方向键。
>
在 Normal 或 Visual 模式下按右方向键。
~
在 Normal 模式下按 ~ 键(翻转当前字母大小写)。
[
在 Insert 或 Replace 模式下按左方向键。
]
在 Insert 或 Replace 模式下按右方向键。
set encoding=utf-8
设置当前字符编码为 UTF-8。 UTF-8 是支持字符集最多的编码之一, 在 UTF-8 下进行工作,
l
在 Normal 或 Visual 模式下按 l 键。
<
在 Normal 或 Visual 模式下按左方向键。
>
在 Normal 或 Visual 模式下按右方向键。
~
在 Normal 模式下按 ~ 键(翻转当前字母大小写)。
[
在 Insert 或 Replace 模式下按左方向键。
]
在 Insert 或 Replace 模式下按右方向键。
set encoding=utf-8
设置当前字符编码为 UTF-8。 UTF-8 是支持字符集最多的编码之一, 在 UTF-8 下进行工作,
会带来许多方便之处。 由于 VIM 在运行过程中切换 encoding 会造成许多问题, 如提示信息乱码、 register 丢失等, 因此强烈建议大家在启动 VIM 的时候把 encoding 设置为 UTF-8, 在编辑非 UTF-8 的文件时, 通过 fileencoding 来进行转码。
set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1
设置编码的自动识别。 关于这条设置的详细含义, 请参看这篇文章。
set ambiwidth=double
防止特殊符号无法正常 显示。 在 Unicode 中, 许多来自不同语言的字符, 如果字型足够近似的话, 会把它们放在同一个编码中。 但在不同编码中, 字符的宽度是不一样的。 例如中文汉语拼音中的 ā 就很宽, 而欧洲语言中同样的字符就很窄。 当 VIM 工作在 Unicode 状态时, 遇到这些宽度不明的字符时, 默认使用窄字符, 这会导致中文的破折号”–”非常短, 五角星”★”等符号只能显示一半。 因此, 我们需要设置 ambiwidth=double 来解决这个问题。
2 文本编辑设置
set sw=4
自动缩进的时候, 缩进尺寸为 4 个空格。
set ts=4
set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1
设置编码的自动识别。 关于这条设置的详细含义, 请参看这篇文章。
set ambiwidth=double
防止特殊符号无法正常 显示。 在 Unicode 中, 许多来自不同语言的字符, 如果字型足够近似的话, 会把它们放在同一个编码中。 但在不同编码中, 字符的宽度是不一样的。 例如中文汉语拼音中的 ā 就很宽, 而欧洲语言中同样的字符就很窄。 当 VIM 工作在 Unicode 状态时, 遇到这些宽度不明的字符时, 默认使用窄字符, 这会导致中文的破折号”–”非常短, 五角星”★”等符号只能显示一半。 因此, 我们需要设置 ambiwidth=double 来解决这个问题。
2 文本编辑设置
set sw=4
自动缩进的时候, 缩进尺寸为 4 个空格。
set ts=4
Tab 宽度为 4 个字符。
set et
编辑时将所有 Tab 替换为空格。
该选项只在编辑时将 Tab 替换为空格, 如果打开一个已经存在的文件, 并不会将已有的 Tab 替换为空格。 如果希望进行这样的替换的话, 可以使用这条命令”:retab”。
set smarttab
当使用 et 将 Tab 替换为空格之后, 按下一个 Tab 键就能插入 4 个空格, 但要想删除这 4 个空格, 就得按 4 下 Backspace, 很不方便。 设置 smarttab 之后, 就可以只按一下 Backspace 就删除 4 个空格了。
3 断行设置
set lbr
不在单词中间断行。 设置了这个选项后, 如果一行文字非常长, 无法在一行内显示完的话, 它会在单词与单词间的空白处断开, 尽量不会把一个单词分成两截放在两个不同的行里。
set fo+=mB
set et
编辑时将所有 Tab 替换为空格。
该选项只在编辑时将 Tab 替换为空格, 如果打开一个已经存在的文件, 并不会将已有的 Tab 替换为空格。 如果希望进行这样的替换的话, 可以使用这条命令”:retab”。
set smarttab
当使用 et 将 Tab 替换为空格之后, 按下一个 Tab 键就能插入 4 个空格, 但要想删除这 4 个空格, 就得按 4 下 Backspace, 很不方便。 设置 smarttab 之后, 就可以只按一下 Backspace 就删除 4 个空格了。
3 断行设置
set lbr
不在单词中间断行。 设置了这个选项后, 如果一行文字非常长, 无法在一行内显示完的话, 它会在单词与单词间的空白处断开, 尽量不会把一个单词分成两截放在两个不同的行里。
set fo+=mB
打开断行模块对亚洲语言支持。 m 表示允许在两个汉字之间断行, 即使汉字之间没有出现空格。 B 表示将两行合并为一行的时候, 汉字与汉字之间不要补空格。 该命令支持的更多的选项请参看用户手册。
set ai
打开普通文件类型的自动缩进。 该自动缩进不如 cindent 智能, 但它可以为你编辑非 C/C++ 文件提供一定帮助。
5 其它设置
set selectmode=
不使用 selectmode。
set keymodel=
不使用”Shift + 方向键”选择文本, “Shift + 方向键”代表向指定方向跳一个单词。 如果你喜欢这项功能的话, 可以使用”set keymodel=startsel,stopsel”打开它。
set selection=inclusive
指定在选择文本时, 光标所在位置也属于被选中的范围。 如果指定 selection=exclusive 的话, 可能会出现某些文本无法被选中的情况。
vim命令进入编辑模式
set ai
打开普通文件类型的自动缩进。 该自动缩进不如 cindent 智能, 但它可以为你编辑非 C/C++ 文件提供一定帮助。
5 其它设置
set selectmode=
不使用 selectmode。
set keymodel=
不使用”Shift + 方向键”选择文本, “Shift + 方向键”代表向指定方向跳一个单词。 如果你喜欢这项功能的话, 可以使用”set keymodel=startsel,stopsel”打开它。
set selection=inclusive
指定在选择文本时, 光标所在位置也属于被选中的范围。 如果指定 selection=exclusive 的话, 可能会出现某些文本无法被选中的情况。
vim命令进入编辑模式
set wildmenu
在命令模式下使用 Tab 自动补全的时候, 将补全内容使用一个漂亮的单行菜单形式显示出来。
colo torte
选择 torte 配方案。 VIM 里内置了许多关键字上的配方案, 另外你还可以到网上下载更多配方案, 或是自己编写。 点击”编辑”→”调板”, 就能列出所有支持的配方案。 你可以把”调板”子菜单剪下来, 然后慢慢选择, 挑出一个你最喜欢的配方案来。
6 图形界面设置
set nowrap
指定不折行。 如果一行太长, 超过屏幕宽度, 则向右边延伸到屏幕外面。 如果使用图形界面的话, 指定不折行视觉效果会好得多。
set mousemodel=popup
当右键单击窗口的时候, 弹出快捷菜单。
set guioptions+=b
添加水平滚动条。 如果你指定了不折行, 那为窗口添加一个水平滚动条就非常有必要了。
在命令模式下使用 Tab 自动补全的时候, 将补全内容使用一个漂亮的单行菜单形式显示出来。
colo torte
选择 torte 配方案。 VIM 里内置了许多关键字上的配方案, 另外你还可以到网上下载更多配方案, 或是自己编写。 点击”编辑”→”调板”, 就能列出所有支持的配方案。 你可以把”调板”子菜单剪下来, 然后慢慢选择, 挑出一个你最喜欢的配方案来。
6 图形界面设置
set nowrap
指定不折行。 如果一行太长, 超过屏幕宽度, 则向右边延伸到屏幕外面。 如果使用图形界面的话, 指定不折行视觉效果会好得多。
set mousemodel=popup
当右键单击窗口的时候, 弹出快捷菜单。
set guioptions+=b
添加水平滚动条。 如果你指定了不折行, 那为窗口添加一个水平滚动条就非常有必要了。
set guifont=Bitstream\ Vera\ Sans\ Mono\ 9
设 置图形界面下的字体。 你可以点”编辑”→”选择字体”, 然后在对话框中选出你喜欢的字体与字号, 选择完毕后, 先按几下 ESC 确认处在 Normal 模式下, 然后输入这条命令:”:set guifont?” 回车后 gvim 屏幕最下方会显示出你当前所用的字体的名称与字号。 将获得的结果写到配置文件里面就可以了, 需要注意一点, 如果字体名称里面含有空格的话, 在抄的时候需要在所有空格前面加一个斜杠。
7 条件选择
同一个配方案, 在 gvim 下和字符界面的 vim 下效果大相径庭, 滇狐个人的习惯是,在 gvim 下使用 torte 配方案, 在 vim 下使用 ron 配方案。 因此我们有必要针对 gvim 和 vim 进行不同的设置。
设 置图形界面下的字体。 你可以点”编辑”→”选择字体”, 然后在对话框中选出你喜欢的字体与字号, 选择完毕后, 先按几下 ESC 确认处在 Normal 模式下, 然后输入这条命令:”:set guifont?” 回车后 gvim 屏幕最下方会显示出你当前所用的字体的名称与字号。 将获得的结果写到配置文件里面就可以了, 需要注意一点, 如果字体名称里面含有空格的话, 在抄的时候需要在所有空格前面加一个斜杠。
7 条件选择
同一个配方案, 在 gvim 下和字符界面的 vim 下效果大相径庭, 滇狐个人的习惯是,在 gvim 下使用 torte 配方案, 在 vim 下使用 ron 配方案。 因此我们有必要针对 gvim 和 vim 进行不同的设置。
另外, 前面我们在 gvim 下不使用折行, 开启水平滚动条, 但在 vim 下,是没有滚动条可用的, 因此还是有必要为 vim 保留自动折行
允许语法高亮
如果您只想在当前线程允许语法高亮,只需输入如下冒号命令:
:syn on
关闭语法高亮的'冒号'命令
:syn off
如果想在每次打开文件时都起作用,只需在您的vimrc文件中添加下一行.
syntax on
gvim和vim下比较有用的命令
1.gvim下的ctrl+q等效于vim下的ctrl+v
2.在insert模式下可以ctrl+o+命令 来执行命令,比如:ctrl+o+u 来执行u撤销操作
3.ctrl+v然后用方向键控制选择多行,然后输入大写I,输入多行同时插入的文字,然后esc,即可.
4.ctrl+[在insert模式下等同于esc
5.:set list显示tab,set nolist不显示tab
6.set et将tab使用空格替代,set tabstop=4使用4个空格,set shiftwidth=4自动缩进的宽度为4,
1.gvim下的ctrl+q等效于vim下的ctrl+v
2.在insert模式下可以ctrl+o+命令 来执行命令,比如:ctrl+o+u 来执行u撤销操作
3.ctrl+v然后用方向键控制选择多行,然后输入大写I,输入多行同时插入的文字,然后esc,即可.
4.ctrl+[在insert模式下等同于esc
5.:set list显示tab,set nolist不显示tab
6.set et将tab使用空格替代,set tabstop=4使用4个空格,set shiftwidth=4自动缩进的宽度为4,
set noet这样tab将如实被插入
7.%到匹配的括号()[]{}
8.在insert模式下,ctrl+r+%插入当前文件的全名称
9.u撤销,ctrl+r恢复
10.`.跳到最后一次修改所在处
11.''跳到光标上一次所在处
12.ma,mb,..mz,mA,...mZ为当前打开的文件说着mark,使用'a,'b,..'z,'A,..'Z跳转到相应标记的mark处
:marks查看当前所有mark
13.ctrl+]跳转到函数定义
ctrl+o返回到前一个位置
ctrl+i跳转到后一个位置
:ju显示跳转历史,>0表示当前所处位置
然后可以使用
5+ctrl+o向后跳转5步
7.%到匹配的括号()[]{}
8.在insert模式下,ctrl+r+%插入当前文件的全名称
9.u撤销,ctrl+r恢复
10.`.跳到最后一次修改所在处
11.''跳到光标上一次所在处
12.ma,mb,..mz,mA,...mZ为当前打开的文件说着mark,使用'a,'b,..'z,'A,..'Z跳转到相应标记的mark处
:marks查看当前所有mark
13.ctrl+]跳转到函数定义
ctrl+o返回到前一个位置
ctrl+i跳转到后一个位置
:ju显示跳转历史,>0表示当前所处位置
然后可以使用
5+ctrl+o向后跳转5步
14.:list查看当前vim打开的所有文件
:b1打开标号为1的文件
:bn或者:bp打开前一个或后一个文件
:bd1删除buffer中的1号文件
:1,3bd删除1到3号的3个文件
15.:%!xxd -g 1或者:%!xxd -g 2显示16进制数据,如果为abc.bin文件,那么需要使用vim -b abc.bin打开之后执行
:e!返回正常显示
16.在.vimrc中修改应该使用真实tab的文件使用真实tab
" 设置vim中tab为4个空格
set shiftwidth =4
set ts=4
set expandtab "除以下几个特例文件之外,其余文件都使用4个空格替代tab
filetype plugin on
:b1打开标号为1的文件
:bn或者:bp打开前一个或后一个文件
:bd1删除buffer中的1号文件
:1,3bd删除1到3号的3个文件
15.:%!xxd -g 1或者:%!xxd -g 2显示16进制数据,如果为abc.bin文件,那么需要使用vim -b abc.bin打开之后执行
:e!返回正常显示
16.在.vimrc中修改应该使用真实tab的文件使用真实tab
" 设置vim中tab为4个空格
set shiftwidth =4
set ts=4
set expandtab "除以下几个特例文件之外,其余文件都使用4个空格替代tab
filetype plugin on
autocmd FileType java set noexpandtab "指定文件类型,这样java源程序文件就会使用真实tab
autocmd FileType Makefile set noexpandtab "指定文件类型,这样.mak和Makefile文件将都会使用真实tab
17.set nobackup不产生~备份文件
18.:hist查看命令历史
autocmd FileType Makefile set noexpandtab "指定文件类型,这样.mak和Makefile文件将都会使用真实tab
17.set nobackup不产生~备份文件
18.:hist查看命令历史
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论