Ubuntu 下面的vim或者的gvim的配置文件

14 篇文章 0 订阅
13 篇文章 0 订阅

由于是安装的英文系统,故在用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
命令行模式
:mapyyy  
:nmapy    
:vmap y   
:omap  y  
:map!   yy
: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 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值