linux下vim配置以及一些常用的快捷键

来源:互联网 发布:java图书管理系统教程 编辑:程序博客网 时间:2024/05/21 15:00

一些常用的vim编辑器快捷键:

h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。

按「ctrl」+「b」:屏幕往“后”移动一页。

按「ctrl」+「f」:屏幕往“前”移动一页。

按「ctrl」+「u」:屏幕往“后”移动半页。

按「ctrl」+「d」:屏幕往“前”移动半页。

按数字「0」:移到文章的开头。

按「G」:移动到文章的最后。

按「$」:移动到光标所在行的“行尾”。

按「^」:移动到光标所在行的“行首”

按「w」:光标跳到下个字的开头

按「e」:光标跳到下个字的字尾

按「b」:光标回到上个字的开头

按「#l」:光标移到该行的第#个位置,如:5l,56l。

「x」:每按一次,删除当前字符。

「#x」:例如,「6x」表示删除光标所在位置的“后面”6个字符。

「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符。

「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符。

「dd」:删除光标所在行,并用下一行进行填充。

「#dd」:从光标所在行开始删除#行。

「#G」:「15G」,表示移动光标至文章的第15行行首。

「w」:在冒号输入字母「w」就可以将文件保存起来。

「q」:按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vim。

「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

 ZZ 立即保存文件并退出。

p  粘贴

u  撤销一次

ctrl+r 反撤销一次

多窗口功能:在命令行模式下输入:sp,这样两个文件就可以同时在一个屏幕上显示,然后先按下ctrl + w,然后放开所有按键后,再按下向下箭头键或者向上箭头键就可以进行窗口的选择了,如果要关闭一个窗口,直接 : q 即可。

 

我的vimrc文件:

  1 map <F9> :call SaveInputData()<CR>  2 func! SaveInputData()  3     exec "tabnew"  4     exec 'normal "+gP'  5     exec "w! /tmp/input_data"  6 endfunc  7   8   9  10  11 "colorscheme torte 12 "colorscheme murphy 13 "colorscheme desert  14 "colorscheme desert  15 "colorscheme elflord 16 colorscheme ron 17  18  19  20  21 "set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 22 "set termencoding=utf-8 23 "set encoding=utf-8 24 "set fileencodings=ucs-bom,utf-8,cp936 25 "set fileencoding=utf-8 26  27 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 28 " 显示相关   29 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 30 "set shortmess=atI   " 启动的时候不显示那个援助乌干达儿童的提示   31 "winpos 5 5          " 设定窗口位置   32 "set lines=40 columns=155    " 设定窗口大小   33 set go=             " 不要图形按钮   34 "color asmanian2     " 设置背景主题   35 "set guifont=Courier_New:h10:cANSI   " 设置字体   36 "syntax on           " 语法高亮   37 autocmd InsertLeave * se nocul  " 用浅色高亮当前行   38 autocmd InsertEnter * se cul    " 用浅色高亮当前行   39 "set ruler           " 显示标尺   40 set showcmd         " 输入的命令显示出来,看的清楚些   41 "set cmdheight=1     " 命令行(在状态行下)的高度,设置为1   42 "set whichwrap+=<,>,h,l   " 允许backspace和光标键跨越行边界(不建议)   43 "set scrolloff=3     " 光标移动到buffer的顶部和底部时保持3行距离   44 set novisualbell    " 不要闪烁(不明白)   45 set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}   "状态行显示的内容   46 set laststatus=1    " 启动显示状态行(1),总是显示状态行(2)   47 set foldenable      " 允许折叠   48 set foldmethod=manual   " 手动折叠   49 "set background=dark "背景使用黑色  50 set nocompatible  "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限   51 " 显示中文帮助 52 if version >= 603 53     set helplang=cn 54     set encoding=utf-8 55 endif 56 " 设置配色方案 57 "colorscheme murphy 58 "字体  59 "if (has("gui_running"))  60 "   set guifont=Bitstream\ Vera\ Sans\ Mono\ 11  61 "endif  62 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 63 "键盘命令 64 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 65  66 nmap <leader>w :w!<cr> 67 nmap <leader>f :find<cr> 68  69 " 映射全选+复制 ctrl+a 70 map <C-A> ggVGY 71 map! <C-A> <Esc>ggVGY 72 map <F12> gg=G 73 " 选中状态下 Ctrl+c 复制 74 vmap <C-c> "+y 75 "去空行   76 nnoremap <F2> :g/^\s*$/d<CR>  77 "比较文件   78 nnoremap <C-F2> :vert diffsplit  79 "新建标签   80 map <M-F2> :tabnew<CR>   81 "列出当前目录文件   82 map <F3> :tabnew .<CR>   83 "打开树状文件目录   84 map <C-F3> \be   85 "C,C++ 按F7编译运行 86 map <F7> :call CompileRunGcc()<CR> 87 func! CompileRunGcc() 88     exec "w" 89     if &filetype == 'c' 90         exec "!g++ % -o %<" 91         exec "! ./%<" 92     elseif &filetype == 'cpp' 93         exec "!g++ % -o %<" 94         exec "! ./%<" 95     elseif &filetype == 'java'  96         exec "!javac %"  97         exec "!java %<" 98     elseif &filetype == 'sh' 99         :!./%100     elseif &filetype == 'py'101         exec "!python %"102         exec "!python %<"103     endif104 endfunc105 "C,C++的调试106 map <F5> :call Rungdb()<CR>107 func! Rungdb()108     exec "w"109     exec "!g++ % -g -o %<"110     exec "!gdb ./%<"111 endfunc112 113 114 115 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""116 ""实用设置117 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""118 " 设置当文件被改动时自动载入119 set autoread120 " quickfix模式121 autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>122 "代码补全 123 set completeopt=preview,menu 124 "允许插件  125 filetype plugin on126 "共享剪贴板  127 set clipboard+=unnamed 128 "从不备份  129 set nobackup130 "make 运行131 :set makeprg=g++\ -Wall\ \ %132 "自动保存133 set autowrite134 set ruler                   " 打开状态栏标尺135 set cursorline              " 突出显示当前行136 set magic                   " 设置魔术137 set guioptions-=T           " 隐藏工具栏138 set guioptions-=m           " 隐藏菜单栏139 "set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\140 " 设置在状态行显示的信息141 set foldcolumn=0142 set foldmethod=indent 143 set foldlevel=3 144 set foldenable              " 开始折叠145 " 不要使用vi的键盘模式,而是vim自己的146 set nocompatible147 " 语法高亮148 set syntax=on149 " 去掉输入错误的提示声音150 set noeb151 " 在处理未保存或只读文件的时候,弹出确认152 set confirm153 " 自动缩进154 set autoindent155 set cindent156 " Tab键的宽度157 set tabstop=4158 " 统一缩进为4159 set softtabstop=4160 set shiftwidth=4161 " 不要用空格代替制表符162 set noexpandtab163 " 在行和段开始处使用制表符164 set smarttab165 " 显示行号166 set number167 " 历史记录数168 set history=1000169 "禁止生成临时文件170 set nobackup171 set noswapfile172 "搜索逐字符高亮173 set hlsearch174 set incsearch175 "行内替换176 set gdefault177 "编码设置178 set enc=utf-8179 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936180 "语言设置181 set langmenu=zh_CN.UTF-8182 set helplang=cn183 " 我的状态行显示的内容(包括文件类型和解码)184 "set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}185 "set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]186 " 总是显示状态行187 set laststatus=2188 " 命令行(在状态行下)的高度,默认为1,这里是2189 set cmdheight=2190 " 侦测文件类型191 filetype on192 " 载入文件类型插件193 filetype plugin on194 " 为特定文件类型载入相关缩进文件195 filetype indent on196 " 保存全局变量197 set viminfo+=!198 " 带有如下符号的单词不要被换行分割199 set iskeyword+=_,$,@,%,#,-200 " 字符间插入的像素行数目201 set linespace=0202 " 增强模式中的命令行自动完成操作203 set wildmenu204 " 使回格键(backspace)正常处理indent, eol, start等205 set backspace=2206 " 允许backspace和光标键跨越行边界207 set whichwrap+=<,>,h,l208 " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)209 set mouse=a210 set selection=exclusive211 set selectmode=mouse,key212 " 通过使用: commands命令,告诉我们文件的哪一行被改变过213 set report=0214 " 在被分割的窗口间显示空白,便于阅读215 set fillchars=vert:\ ,stl:\ ,stlnc:\216 " 高亮显示匹配的括号217 set showmatch218 " 匹配括号高亮的时间(单位是十分之一秒)219 set matchtime=1220 " 光标移动到buffer的顶部和底部时保持3行距离221 set scrolloff=3222 " 为C程序提供自动缩进223 set smartindent224 " 高亮显示普通txt文件(需要txt.vim脚本)225 au BufRead,BufNewFile *  setfiletype txt226 "自动补全227 :inoremap ) <c-r>=ClosePair(')')<CR>228 ":inoremap { {<CR>}<ESC>O229 ":inoremap } <c-r>=ClosePair('}')<CR>230 :inoremap ] <c-r>=ClosePair(']')<CR>231 function! ClosePair(char)232     if getline('.')[col('.') - 1] == a:char233         return "\<Right>"234     else235         return a:char236     endif237 endfunction238 filetype plugin indent on 239 "打开文件类型检测, 加了这句才可以用智能补全240 set completeopt=longest,menu241 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""242 243 244 245 246 247 248 "NERDtee设定249 let NERDChristmasTree=1250 let NERDTreeAutoCenter=1251 let NERDTreeBookmarksFile=$VIM.'\Data\NerdBookmarks.txt'252 let NERDTreeMouseMode=2253 let NERDTreeShowBookmarks=1254 let NERDTreeShowFiles=1255 let NERDTreeShowHidden=1256 let NERDTreeShowLineNumbers=1257 let NERDTreeWinPos='left'258 let NERDTreeWinSize=31259 nnoremap f :NERDTreeToggle260 map <F7> :NERDTree<CR>  
View Code

 

 

 

0 0
原创粉丝点击