Ubuntu18.04安装及配置vim
本文链接:https://blog.csdn.net/qq_15725099/article/details/88536748
1.在虚拟机安装Ubuntu18.04;
2.安装vim命令行中输入: sudo apt-get install vim
3.查看安装是否成功输入:vim -v
2.配置vim
(1.)在主目录下新建.vimrc,并添加一下内容

1 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 2 " 显示相关 3 " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 4 "set shortmess=atI " 启动的时候不显示那个援助乌干达儿童的提示 5 "winpos 5 5 " 设定窗口位置 6 "set lines=40 columns=155 " 设定窗口大小 7 "set nu " 显示行号 8 set go= " 不要图形按钮 9 "color asmanian2 " 设置背景主题 10 "set guifont=Courier_New:h10:cANSI " 设置字体 11 "syntax on " 语法高亮 12 autocmd InsertLeave * se nocul " 用浅色高亮当前行 13 autocmd InsertEnter * se cul " 用浅色高亮当前行 14 "set ruler " 显示标尺 15 set showcmd " 输入的命令显示出来,看的清楚些 16 "set cmdheight=1 " 命令行(在状态行下)的高度,设置为1 17 "set whichwrap+=<,>,h,l " 允许backspace和光标键跨越行边界(不建议) 18 "set scrolloff=3 " 光标移动到buffer的顶部和底部时保持3行距离 19 set novisualbell " 不要闪烁(不明白) 20 set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "状态行显示的内容 21 set laststatus=1 " 启动显示状态行(1),总是显示状态行(2) 22 " set foldenable " 允许折叠 23 set foldmethod=manual " 手动折叠 24 "set background=dark "背景使用黑色 25 set nocompatible "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限 26 " 显示中文帮助 27 if version >= 603 28 set helplang=cn 29 set encoding=utf-8 30 endif 31 " 设置配色方案 32 "colorscheme murphy 33 "字体 34 "if (has("gui_running")) 35 " set guifont=Bitstream\ Vera\ Sans\ Mono\ 10 36 "endif " 37 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 38 set termencoding=utf-8 39 set encoding=utf-8 40 set fileencodings=ucs-bom,utf-8,cp936 41 set fileencoding=utf-8 42 autocmd BufReadPost * 43 \ if line("'\"") > 0 && line("'\"") <= line("$") | 44 \ exe "normal g'\"" | 45 \ endif 46 47 " SHORTCUT SETTINGS: {{{1 48 " Set mapleader 49 let mapleader="," 50 " Space to command mode. 51 nnoremap <space> : 52 vnoremap <space> : 53 " Switching between buffers. 54 nnoremap <C-h> <C-W>h 55 nnoremap <C-j> <C-W>j 56 nnoremap <C-k> <C-W>k 57 nnoremap <C-l> <C-W>l 58 inoremap <C-h> <Esc><C-W>h 59 inoremap <C-j> <Esc><C-W>j 60 inoremap <C-k> <Esc><C-W>k 61 inoremap <C-l> <Esc><C-W>l 62 " "cd" to change to open directory. 63 let OpenDir=system("pwd") 64 nmap <silent> <leader>cd :exe 'cd ' . OpenDir<cr>:pwd<cr> 65 " PLUGIN SETTINGS: {{{1 66 " taglist.vim 67 let g:Tlist_Auto_Update=1 68 let g:Tlist_Process_File_Always=1 69 let g:Tlist_Exit_OnlyWindow=1 70 let g:Tlist_Show_One_File=1 71 let g:Tlist_WinWidth=25 72 let g:Tlist_Enable_Fold_Column=0 73 let g:Tlist_Auto_Highlight_Tag=1 74 " NERDTree.vim 75 let g:NERDTreeWinPos="right" 76 let g:NERDTreeWinSize=25 77 let g:NERDTreeShowLineNumbers=1 78 let g:NERDTreeQuitOnOpen=1 79 " cscope.vim 80 if has("cscope") 81 set csto=1 82 set cst 83 set nocsverb 84 if filereadable("cscope.out") 85 cs add cscope.out 86 endif 87 set csverb 88 endif 89 " OmniCppComplete.vim 90 let g:OmniCpp_DefaultNamespaces=["std"] 91 let g:OmniCpp_MayCompleteScope=1 92 let g:OmniCpp_SelectFirstItem=2 93 " VimGDB.vim 94 if has("gdb") 95 set asm=0 96 let g:vimgdb_debug_file="" 97 run macros/gdb_mappings.vim 98 endif 99 " LookupFile setting 100 let g:LookupFile_TagExpr='"./tags.filename"' 101 let g:LookupFile_MinPatLength=2 102 let g:LookupFile_PreserveLastPattern=0 103 let g:LookupFile_PreservePatternHistory=1 104 let g:LookupFile_AlwaysAcceptFirst=1 105 let g:LookupFile_AllowNewFiles=0 106 " Man.vim 107 source $VIMRUNTIME/ftplugin/man.vim 108 " snipMate 109 let g:snips_author="Du Jianfeng" 110 let g:snips_email="cmdxiaoha@163.com" 111 let g:snips_copyright="SicMicro, Inc" 112 " plugin shortcuts 113 function! RunShell(Msg, Shell) 114 echo a:Msg . '...' 115 call system(a:Shell) 116 echon 'done' 117 endfunction 118 nmap <F2> :TlistToggle<cr> 119 nmap <F3> :NERDTreeToggle<cr> 120 nmap <F4> :MRU<cr> 121 nmap <F5> <Plug>LookupFile<cr> 122 nmap <F6> :vimgrep /<C-R>=expand("<cword>")<cr>/ **/*.c **/*.h<cr><C-o>:cw<cr> 123 nmap <F9> :call RunShell("Generate tags", "ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .")<cr> 124 nmap <F10> :call HLUDSync()<cr> 125 nmap <F11> :call RunShell("Generate filename tags", "~/.vim/shell/genfiletags.sh")<cr> 126 nmap <F12> :call RunShell("Generate cscope", "cscope -Rb")<cr>:cs add cscope.out<cr> 127 nmap <leader>sa :cs add cscope.out<cr> 128 nmap <leader>ss :cs find s <C-R>=expand("<cword>")<cr><cr> 129 nmap <leader>sg :cs find g <C-R>=expand("<cword>")<cr><cr> 130 nmap <leader>sc :cs find c <C-R>=expand("<cword>")<cr><cr> 131 nmap <leader>st :cs find t <C-R>=expand("<cword>")<cr><cr> 132 nmap <leader>se :cs find e <C-R>=expand("<cword>")<cr><cr> 133 nmap <leader>sf :cs find f <C-R>=expand("<cfile>")<cr><cr> 134 nmap <leader>si :cs find i <C-R>=expand("<cfile>")<cr><cr> 135 nmap <leader>sd :cs find d <C-R>=expand("<cword>")<cr><cr> 136 nmap <leader>zz <C-w>o 137 nmap <leader>gs :GetScripts<cr> 138 autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()" 139 func SetTitle() 140 if &filetype == 'sh' 141 call setline(1,"\#########################################################################") 142 call append(line("."), "\# File Name: ".expand("%")) 143 call append(line(".")+1, "\# Author: 舒承扬") 144 call append(line(".")+2, "\# mail: 1083790169@qq.com") 145 call append(line(".")+3, "\# Created Time:".strftime("%c")) 146 call append(line(".")+4,"\#########################################################################") 147 call append(line(".")+5, "\#!/bin/bash") 148 call append(line(".")+6, "") 149 else 150 call setline(1, "/*************************************************************************") 151 call append(line("."), " > File Name: ".expand("%")) 152 call append(line(".")+1, " > Author: 舒承扬") 153 call append(line(".")+2, " > Mail: 1083790169@qq.com ") 154 call append(line(".")+3, " > Created Time: ".strftime("%c")) 155 call append(line(".")+4," ************************************************************************/") 156 call append(line(".")+5, "") 157 endif 158 if &filetype == 'cpp' 159 call append(line(".")+6, "#include <iostream>") 160 161 call append(line(".")+7, "") 162 call append(line(".")+8, "using namespace std;") 163 call append(line(".")+9, "") 164 call append(line(".")+10, "int main(void){") 165 call append(line(".")+11, "") 166 call append(line(".")+12, " return 0;") 167 call append(line(".")+13, "}") 168 endif 169 if &filetype == 'c' 170 call append(line(".")+6, "#include <stdio.h>") 171 call append(line(".")+7, "") 172 call append(line(".")+8, "int main(void){") 173 call append(line(".")+9, "") 174 call append(line(".")+10," return 0;") 175 call append(line(".")+11, "}") 176 endif 177 autocmd BufNewFile *normal G 178 endfunc 179 inoremap ( ()<Esc>i>
(2.)执行sudo vi /etc/vim/vimrc,在文件尾添加如下内容

1 set ts=4 2 set expandtab 3 set autoindent 4 set nu 5 set nocompatible 6 set number 7 set autoindent 8 set smartindent 9 set showmatch 10 set ruler 11 set incsearch 12 set tabstop=4 13 set shiftwidth=4 14 set softtabstop=4 15 set cindent 16 set nobackup 17 set clipboard+=unnamed 18 "inoremap [ []<Esc>i 19 "inoremap { {}<Esc>i 20 "inoremap ( ()<Esc>i 21 "inoremap ' ''<Esc>i 22 "inoremap " ""<Esc>i 23 24 ———————————————— 25 版权声明:本文为CSDN博主「自由的雨」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 26 原文链接:https://blog.csdn.net/qq_15725099/article/details/88536748
(3.)重启终端或电脑