本文主要是介绍Ubuntu 下面的vim或者的gvim的配置文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
由于是安装的英文系统,故在用vim和gedit时 中文显示有问题,对于vim,解决方法如下:
打开vim的配置文件,位置在/etc/vim/vimrc
在其中加入
" 关闭兼容模式
set nocompatible
" gvim 字体设置
set guifont=DejaVu\ Sans\ Mono\ 12
" gvim 内部编码
set encoding=utf-8
" 当前编辑文件编码
set fileencoding=utf-8
" gvim 打开文件支持编码的文件
set fileencodings=utf-8,gbk,cp936,gb2312,big5
" 解决console输出乱码
language messages zh_CN.utf-8
" 设置终端编码为gvim内部编码encoding
let &termencoding=&encoding
" 防止特殊符号无法正常显示
set ambiwidth=double
" 缩进尺寸为4个空格 or "set shiftwidth=4
set sw=4
" tab 宽度为4个字符 or " set tabstop=4
set ts=4
" 编辑时所有tab替换为空格
set et
" 按一次backspace就删除4个空格
set smarttab
" 不生成备份文件
set nobackup
" 开启行号标记 or "set number
set nu
" 配色方案为desert or " colorscheme torte
colo desert
" 关闭右侧滚动条
set guioptions-=r
" 开启自动缩进
set autoindent
set cindent
" 取消光标闪烁
set gcr=a:blinkon0
"set gcr=i-ci:ver10
"set gcr=a:block-blinkon0
set noswapfile
set virtualedit=onemore
set noexpandtab
set cursorline " 突出显示当前行
"set backspace=2 " 设置退格键可用
"set cindent shiftwidth=4 " 自动缩进4空格
set smartindent " 智能自动缩进
set showmatch " 显示括号配对情况
syntax enable " 打开语法高亮
syntax on " 开启文件类型侦测
filetype indent on " 针对不同的文件类型采用不同的缩进格式
filetype plugin on " 针对不同的文件类型加载对应的插件
filetype plugin indent on " 启用自动补全
"set nowrap " 设置不自动换行
set wrap
"set foldmethod=syntax " 选择代码折叠类型
"set foldlevel=100 " 禁止自动折叠
"set laststatus=2 " 开启状态栏信息
"set cmdheight=2 " 命令行的高度,默认为1,这里设为2
" 解决菜单乱码
"source $VIMRUNTIME/delmenu.vim
"source $VIMRUNTIME/menu.vim
"set guioptions-=m " 隐藏菜单栏
"set guioptions-=L " 隐藏左侧滚动条
"set guioptions-=b " 隐藏底部滚动条
"set showtabline=0 " 隐藏Tab栏
"set clipboard=unnamed
set lines=25 columns=108
"文件在外部被修改则自动保存
set autoread
"同样适用于jQuery的js语法高亮
au BufRead,BufNewFile *.js set syntax=jquery
imap <C-D> <ESC>ddi
"Move one line up and down
"map <A-UP> yyddkkp
"map <A-DOWN> yyddp
"nmap <A-UP> yyddkkp
"nmap <A-DOWN> yyddp
"imap <A-UP> <ESC>yyddkpi
imap <A-DOWN> <ESC>yyddpi
"Copy one line up/down to the original line
"map <C-UP> yykp
"map <C-DOWN> yyp
"nmap <C-UP> yykp
"nmap <C-DOWN> yyp
"imap <C-UP> <ESC>yykpi
"imap <C-DOWN> <ESC>yypi
imap <C-A-Down> <ESC>yypi
imap <S-CR> <ESC>o
":inoremap ) ()<Esc>i
":inoremap ( ()<Esc>i
":inoremap { {}<Esc>i
":inoremap } {}<Esc>i
":inoremap [ []<Esc>i
":inoremap ] []<Esc>i
":inoremap < <><Esc>i
":inoremap > <><Esc>i
":inoremap " ""<Esc>i
":inoremap ' ''<Esc>i
:map <C-S-C> "+y
:map <C-S-V> <ESC><S-Insert>i
:noremap 普通,可视和操作符等待模式
:vnoremap 可视模式
:nnoremap 普通模式
:onoremap 操作符等待模式
:noremap! 插入和命令行模式
:inoremap 插入模式
:cnoremap 命令行模式
删 除 映 射
要删除一个映射,使用 ":unmap" 命令。同样,删除映射的命令也和运行模式相关:
:unmap 普通,可视和操作符等待模式
:vunmap 可视模式
:nunmap 普通模式
:ounmap 操作符等待模式
:unmap! 插入和命令行模式
:iunmap 插入模式
:cunmap 命令行模式
使用:map命令,可以将键盘上的某个按键与Vim的命令绑定起来。例如使用以下命令,可以通过F5键将单词用花括号括起来:
:map <F5> i{ea}<Esc>
其中:i{将插入字符{,然后使用Esc退回到命令状态;接着用e移到单词结尾,a}增加字符},最后退至命令状态。在执行以上命令之后,光标定位在一个单词上(例如amount),按下F5键,这时字符就会变成{amount}的形式。
使用下表中不同形式的map命令,可以针对特定的模式设置键盘映射:
Command 命令 | Normal 常规模式 | Visual 可视化模式 | Operator Pending 运算符模式 | Insert Only 插入模式 | Command Line 命令行模式 |
:map | y | y | y | ||
:nmap | y | ||||
:vmap | y | ||||
:omap | y | ||||
:map! | y | y | |||
:imap | y | ||||
:cmap | y |
使用以下命令,可以在Normal Mode和Visual/Select Mode下,利用Tab键和Shift-Tab键来缩进文本:
nmap <tab> V>
nmap <s-tab> V<
vmap <tab> >gv
vmap <s-tab> <gv
使用以下命令,指定F10键来新建标签页:
:map <F10> <Esc>:tabnew<CR>
其中:<Esc>代表Escape键;<CR>代表Enter键;而功能键则用<F10>表示。首先进入命令行模式,然后执行新建标签页的:tabnew命令,最后返回常规模式。
同理:对于组合键,可以用<C-Esc>代表Ctrl-Esc;使用<S-F1>表示Shift-F1。对于Mac用户,可以使用<D>代表Command键。
注意:Alt键可以使用<M-key>或<A-key>来表示。
关于键盘符号的详细说明,请使用:h key-notation
命令查看帮助信息。
我们还可以针对函数设置键盘映射。 例如,将以下代码加入.vimrc文件,就可以利用快捷键,来打开或关闭针对搜索结果的高亮显示。
查看键盘映射
使用:map
命令,可以列出所有键盘映射。其中第一列标明了映射在哪种模式下工作:
标记 | 模式 |
<space> | 常规模式,可视化模式,运算符模式 |
n | 常规模式 |
v | 可视化模式 |
o | 运算符模式 |
! | 插入模式,命令行模式 |
i | 插入模式 |
c | 命令模式 |
使用:map!
命令,则只列出插入和命令行模式的映射。而:imap
,:vmap
,:omap
,:nmap
命令则只是列出相应模式下的映射。
取消键盘映射
如果想要取消一个映射,可以使用以下命令:
:unmap <F10>
注意:必须为:unmap命令指定一个参数。如果未指定任何参数,那么系统将会报错,而不会取消所有的键盘映射。
针对不同模式下的键盘映射,需要使用与其相对应的unmap命令。例如:使用:iunmap
命令,取消插入模式下的键盘映射;而取消常规模式下的键盘映射,则需要使用:nunmap
命令。
如果想要取消所有映射,可以使用:mapclear
命令。请注意,这个命令将会移除所有用户定义和系统默认的键盘映射。
配置文件详细说明:
http://www.oschina.net/code/snippet_103341_8984
set gcr=a:block-blinkon0 gcr 是 guicursor 的简写,a 表示所有模式,冒号后面是对应模式下的行为参数,每个参数用 - 分隔,block 说明用块状光标,blinkon 表示亮起光标时长,时长为零表示禁用闪烁。也可以是 blinkoff0 或者 blinkwait0
gvim 学习视频网址:
http://v.youku.com/v_show/id_XMzczNTcyMTMy.html
http://xiyou.cntv.cn/v-ccec4c70-7af9-11e1-b474-a4badb4689bc.html
http://www.vim.org/scripts/script.php?script_id=2540
http://xiyou.cntv.cn/9423920/index.html
插件地址:
http://www.vimer.cn/
如果只是想使用系统粘贴板的话直接在输入模式按Shift+Inset(粘贴)即可,在Gvim中鼠标中键可起到相同的作用。
剪切/删除(在vim内部): dd
复制(在Vim内部): yy
复制到系统剪切板: "+y (三个键)
下面是vim粘贴板的基础知识,有兴趣的可以看看,应该会有所收获的。
1.vim有12个粘贴板,分别是0、1、2、…、9、a、“、+;用 :reg 命令可以查看各个粘贴板里的内容。在vim中用 yy 只是复制到 " (双引号)粘贴板里,同样用 Ctrl+p 粘贴的也是这个粘贴板里的内容;
2.要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按 "Ny(注意带引号)完成复制,其中 N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按 y),例如要把内容复制到粘贴板 a,选中内容后按 "ay就可以了,有两点需要说明一下:
" 号粘贴板(临时粘贴板)比较特殊,直接按 y 就复制到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容;
+ 号粘贴板是系统粘贴板,用 "+y (依次按" + y这三个键)将内容复制到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用 Ctrl+C 或右键复制的内容复制到vim中,需要在正常模式下按 "+p;
3.要将vim某个粘贴板里的内容粘贴进来,需要退出编辑模式,在正常模式按 "Np,其中 N为粘贴板号,如上所述,可以按 "5p 将5号粘贴板里的内容粘贴进来,也可以按 "+p 将系统全局粘贴板里的内容粘贴进来。
注意:只有vim.gtk或vim.gnome才能使用系统全局粘贴板,默认的vim.basic看不到+号寄存器。安装vim.gnome使用apt-get install vim-gnome,然后vim自动会链接到vim.gnome。
进入输入模式命令
i插入命令
a附加命令
o打开命令
c修改命令
r取代命令
s替换命令
Esc退出命令
输入模式的操作
Home光标到行首
End 光标到行尾
Page Up和Page Down上下翻页
Delect删除光标位置的字符
删除操作(命令模式使用)
x删除光标处的单个字符
dd删除光标所在行
dw删除当前字符到单词尾包括空格的所有字符
#x例如3x删除光标处向右的三个字符
#dd例如3dd从当前行开始向下删除三行文本
撤销操作
u命令取消最近一次的操作,可以使用多次来恢复原有的操作
U取消所有操作
Ctrl+R可以恢复对使用u命令的操作
复制操作
yy命令复制当前整行的内容到vi缓冲区
yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词
y$复制光标所在位置到行尾内容到缓存区
y^复制光标所在位置到行首内容到缓存区
#yy例如:5yy就是复制5行
#yw例如:2yw就是复制两个单词
如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。
查找和替换
vi的查找和替换功能主要在末行模式完成:
至上而下的查找
/ 要查找的字符窜,其中/代表从光标所在位置起开始查找,例如:/ work
至下而上的查找
?要查找的字符窜 例如:/ work
替换
这是最简单的替换命令,需要了解:s命令的标志位,例如“i”代表忽略大小写,“g”代表对行内所有匹配都做替换,“c”代表替换前提示。
“%”字符表示在文件范围内进行替换,它相当于“1,$”,即从第一行替换到最后一行。
^ 代表行首
$ 代表行尾
\d 代表数字
\D 代表非数字
[x,y,z]:代表各种条件选择
:s/old/new用new替换行中首次出现的old
: s/old/new/g 用new替换行中所有出现的old
:#,# s/old/new/g用new替换从第#行到第#行中出现的old
:% s/old/new/g用new替换整篇中出现的old
如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c 或s/old/new/gc
恢复文件
vi在编辑某一个文件时,会生成一个临时文件,这个文件以 . 开头并以 .swp结尾。正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除,我们在下次编辑时可以选择一下命令处理:
O只读打开,不改变文件内容
E继续编辑文件,不恢复.swp文件保存的内容
R将恢复上次编辑以后未保存文件内容
Q退出vi
D删除.swp文件
或者使用vi -r 文件名来恢复未保存的内容
编辑多个文件
在同一编辑窗打开第二个文件,用 :sp [filename]
在多个编辑文件之间切换,用 Ctrl+w
获取帮助,用 :help [内容或命令]
可以对下面两个选项进行配置,以调整SuperTab的缺省行为:
- g:SuperTabRetainCompletionType的值缺省为1,意为记住你上次的补全方式,直到使用其它的补全命令改变它;如果把它设成2,意味着记住上次的补全方式,直到按ESC退出插入模式为止;如果设为0,意味着不记录上次的补全方式。
- g:SuperTabDefaultCompletionType的值设置缺省的补全方式,缺省为CTRL-P。
你可以在vimrc中设置这两个变量,例如:
let g:SuperTabRetainCompletionType = 2 let g:SuperTabDefaultCompletionType = "<C-X><C-O>"现在你可以使用TAB来进行补全了,就像在shell中那样,方便了很多!
vim中其它的补全方式包括:
整行补全 CTRL-X CTRL-L 根据当前文件里关键字补全 CTRL-X CTRL-N 根据字典补全 CTRL-X CTRL-K 根据同义词字典补全 CTRL-X CTRL-T 根据头文件内关键字补全 CTRL-X CTRL-I 根据标签补全 CTRL-X CTRL-] 补全文件名 CTRL-X CTRL-F 补全宏定义 CTRL-X CTRL-D 补全vim命令 CTRL-X CTRL-V 用户自定义补全方式 CTRL-X CTRL-U 拼写建议 CTRL-X CTRL-S
这篇关于Ubuntu 下面的vim或者的gvim的配置文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!