ubuntu下vim配置成c++開發編輯器
全棧工程師開發手冊 (作者:欒鵬)
整體的vim的設定是在 /etc/vim/vimrc 檔案中。如果想設定所有使用者的配置,在裡面設定就可以了,配置和.vimrc是一樣的,在最後面新增下面2中的語句。
不建議修改/etc/vimrc 檔案,每個使用者可以在使用者根目錄中設定vim,新建.vimrc。命令如下:
vim ~/.vimrc
在終端下使用vim進行編輯時,預設情況下,編輯的介面上是沒有顯示行號、語法高亮度顯示、智慧縮排等功能的。為了更好的在vim下進行工作,需要手動設定一個配置檔案:.vimrc。
需要通過安裝很多外掛來完成功能,這裡直接將~/.vimrc檔案發給大家,大家直接替換就可以了。
我的vim配置主要有以下優點:
1.按F5可以直接編譯並執行C、C++、java程式碼以及執行shell指令碼,按“F8”可進行C、C++程式碼的除錯
2.自動插入檔案頭 ,新建C、C++原始檔時自動插入表頭:包括檔名、作者、聯絡方式、建立時間等,讀者可根據需求自行更改
3.對映“Ctrl + A”為全選並複製快捷鍵,方便複製程式碼
4.按“F2”可以直接消除程式碼中的空行
5.“F3”可列出當前目錄檔案,開啟樹狀檔案目錄
-
支援滑鼠選擇、方向鍵移動
-
程式碼高亮,自動縮排,顯示行號,顯示狀態行
8.按“Ctrl + P”可自動補全
9.[]、{}、()、""、’ '等都自動補全
10.其他功能讀者可以研究以下檔案
map <F9> :call SaveInputData()<CR>
func! SaveInputData()
exec "tabnew"
exec 'normal "+gP'
exec "w! /tmp/input_data"
endfunc
"colorscheme torte
"colorscheme murphy
"colorscheme desert
"colorscheme desert
"colorscheme elflord
colorscheme ron
"set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
"set termencoding=utf-8
"set encoding=utf-8
"set fileencodings=ucs-bom,utf-8,cp936
"set fileencoding=utf-8
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 顯示相關
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"set shortmess=atI " 啟動的時候不顯示那個援助烏干達兒童的提示
"winpos 5 5 " 設定視窗位置
"set lines=40 columns=155 " 設定視窗大小
set go= " 不要圖形按鈕
"color asmanian2 " 設定背景主題
"set guifont=Courier_New:h10:cANSI " 設定字型
"syntax on " 語法高亮
autocmd InsertLeave * se nocul " 用淺色高亮當前行
autocmd InsertEnter * se cul " 用淺色高亮當前行
"set ruler " 顯示標尺
set showcmd " 輸入的命令顯示出來,看的清楚些
"set cmdheight=1 " 命令列(在狀態行下)的高度,設定為1
"set whichwrap+=<,>,h,l " 允許backspace和游標鍵跨越行邊界(不建議)
"set scrolloff=3 " 游標移動到buffer的頂部和底部時保持3行距離
set novisualbell " 不要閃爍(不明白)
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "狀態行顯示的內容
set laststatus=1 " 啟動顯示狀態行(1),總是顯示狀態行(2)
set foldenable " 允許摺疊
set foldmethod=manual " 手動摺疊
"set background=dark "背景使用黑色
set nocompatible "去掉討厭的有關vi一致性模式,避免以前版本的一些bug和侷限
" 顯示中文幫助
if version >= 603
set helplang=cn
set encoding=utf-8
endif
" 設定配色方案
"colorscheme murphy
"字型
"if (has("gui_running"))
" set guifont=Bitstream\ Vera\ Sans\ Mono\ 10
"endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""新檔案標題
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"新建.c,.h,.sh,.java檔案,自動插入檔案頭
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"
""定義函式SetTitle,自動插入檔案頭
func SetTitle()
"如果檔案型別為.sh檔案
if &filetype == 'sh'
call setline(1,"\#########################################################################")
call append(line("."), "\# File Name: ".expand("%"))
call append(line(".")+1, "\# Author: ma6174")
call append(line(".")+2, "\# mail: [email protected]")
call append(line(".")+3, "\# Created Time: ".strftime("%c"))
call append(line(".")+4, "\#########################################################################")
call append(line(".")+5, "\#!/bin/bash")
call append(line(".")+6, "")
else
call setline(1, "/*************************************************************************")
call append(line("."), " > File Name: ".expand("%"))
call append(line(".")+1, " > Author: ma6174")
call append(line(".")+2, " > Mail: [email protected] ")
call append(line(".")+3, " > Created Time: ".strftime("%c"))
call append(line(".")+4, " ************************************************************************/")
call append(line(".")+5, "")
endif
if &filetype == 'cpp'
call append(line(".")+6, "#include<iostream>")
call append(line(".")+7, "using namespace std;")
call append(line(".")+8, "")
endif
if &filetype == 'c'
call append(line(".")+6, "#include<stdio.h>")
call append(line(".")+7, "")
endif
" if &filetype == 'java'
" call append(line(".")+6,"public class ".expand("%"))
" call append(line(".")+7,"")
" endif
"新建檔案後,自動定位到檔案末尾
autocmd BufNewFile * normal G
endfunc
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"鍵盤命令
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nmap <leader>w :w!<cr>
nmap <leader>f :find<cr>
" 對映全選+複製 ctrl+a
map <C-A> ggVGY
map! <C-A> <Esc>ggVGY
map <F12> gg=G
" 選中狀態下 Ctrl+c 複製
vmap <C-c> "+y
"去空行
nnoremap <F2> :g/^\s*$/d<CR>
"比較檔案
nnoremap <C-F2> :vert diffsplit
"新建標籤
map <M-F2> :tabnew<CR>
"列出當前目錄檔案
map <F3> :tabnew .<CR>
"開啟樹狀檔案目錄
map <C-F3> \be
"C,C++ 按F5編譯執行
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
if &filetype == 'c'
exec "!g++ % -o %<"
exec "! ./%<"
elseif &filetype == 'cpp'
exec "!g++ % -o %<"
exec "! ./%<"
elseif &filetype == 'java'
exec "!javac %"
exec "!java %<"
elseif &filetype == 'sh'
:!./%
elseif &filetype == 'py'
exec "!python %"
exec "!python %<"
endif
endfunc
"C,C++的除錯
map <F8> :call Rungdb()<CR>
func! Rungdb()
exec "w"
exec "!g++ % -g -o %<"
exec "!gdb ./%<"
endfunc
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""實用設定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 設定當檔案被改動時自動載入
set autoread
" quickfix模式
autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
"程式碼補全
set completeopt=preview,menu
"允許外掛
filetype plugin on
"共享剪貼簿
set clipboard+=unnamed
"從不備份
set nobackup
"make 執行
:set makeprg=g++\ -Wall\ \ %
"自動儲存
set autowrite
set ruler " 開啟狀態列標尺
set cursorline " 突出顯示當前行
set magic " 設定魔術
set guioptions-=T " 隱藏工具欄
set guioptions-=m " 隱藏選單欄
"set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
" 設定在狀態行顯示的資訊
set foldcolumn=0
set foldmethod=indent
set foldlevel=3
set foldenable " 開始摺疊
" 不要使用vi的鍵盤模式,而是vim自己的
set nocompatible
" 語法高亮
set syntax=on
" 去掉輸入錯誤的提示聲音
set noeb
" 在處理未儲存或只讀檔案的時候,彈出確認
set confirm
" 自動縮排
set autoindent
set cindent
" Tab鍵的寬度
set tabstop=4
" 統一縮排為4
set softtabstop=4
set shiftwidth=4
" 不要用空格代替製表符
set noexpandtab
" 在行和段開始處使用製表符
set smarttab
" 顯示行號
set number
" 歷史記錄數
set history=1000
"禁止生成臨時檔案
set nobackup
set noswapfile
"搜尋忽略大小寫
set ignorecase
"搜尋逐字元高亮
set hlsearch
set incsearch
"行內替換
set gdefault
"編碼設定
set enc=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
"語言設定
set langmenu=zh_CN.UTF-8
set helplang=cn
" 我的狀態行顯示的內容(包括檔案型別和解碼)
"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
"set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
" 總是顯示狀態行
set laststatus=2
" 命令列(在狀態行下)的高度,預設為1,這裡是2
set cmdheight=2
" 偵測檔案型別
filetype on
" 載入檔案型別外掛
filetype plugin on
" 為特定檔案型別載入相關縮排檔案
filetype indent on
" 儲存全域性變數
set viminfo+=!
" 帶有如下符號的單詞不要被換行分割
set iskeyword+=_,$,@,%,#,-
" 字元間插入的畫素行數目
set linespace=0
" 增強模式中的命令列自動完成操作
set wildmenu
" 使回格鍵(backspace)正常處理indent, eol, start等
set backspace=2
" 允許backspace和游標鍵跨越行邊界
set whichwrap+=<,>,h,l
" 可以在buffer的任何地方使用滑鼠(類似office中在工作區雙擊滑鼠定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 通過使用: commands命令,告訴我們檔案的哪一行被改變過
set report=0
" 在被分割的視窗間顯示空白,便於閱讀
set fillchars=vert:\ ,stl:\ ,stlnc:\
" 高亮顯示匹配的括號
set showmatch
" 匹配括號高亮的時間(單位是十分之一秒)
set matchtime=1
" 游標移動到buffer的頂部和底部時保持3行距離
set scrolloff=3
" 為C程式提供自動縮排
set smartindent
" 高亮顯示普通txt檔案(需要txt.vim指令碼)
au BufRead,BufNewFile * setfiletype txt
"自動補全
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
":inoremap { {<CR>}<ESC>O
":inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endfunction
filetype plugin indent on
"開啟檔案型別檢測, 加了這句才可以用智慧補全
set completeopt=longest,menu
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"NERDtee設定
let NERDChristmasTree=1
let NERDTreeAutoCenter=1
let NERDTreeBookmarksFile=$VIM.'\Data\NerdBookmarks.txt'
let NERDTreeMouseMode=2
let NERDTreeShowBookmarks=1
let NERDTreeShowFiles=1
let NERDTreeShowHidden=1
let NERDTreeShowLineNumbers=1
let NERDTreeWinPos='left'
let NERDTreeWinSize=31
nnoremap f :NERDTreeToggle
map <F7> :NERDTree<CR>
相關推薦
ubuntu下vim配置成c++開發編輯器
全棧工程師開發手冊 (作者:欒鵬) 整體的vim的設定是在 /etc/vim/vimrc 檔案中。如果想設定所有使用者的配置,在裡面設定就可以了,配置和.vimrc是一樣的,在最後面新增下面2中的語句。 不建議修改/etc/vimrc 檔案,每個使用者可以
Linux下新手怎樣將VIM配置成C++編程環境(能夠STL自己主動補全)
mes 標簽 ctrl+c 配色方案 lang 環境 rip vimr str ~ 弄拉老半天,最終弄的幾乎相同啦,果然程序猿還是須要有點折騰精神啊。 首先你要安裝vim,命令:sudo apt-get install vim vim它僅僅是一個編
ubuntu下使用Eclipse搭建C++開發環境
ubuntu下使用Eclipse下搭建開發環境基本上網上教程一大堆,但是複雜度太大,因為很多教程都是從JDK開始安裝一直到最後,而且很多都是從別的linux發行版上弄來的方法,各種編譯直接嚇死人有木有,其實ubuntu的方便之處很大程度上在於atp的使用,抹殺了atp的ubuntu那就太雞肋了。
ubuntu14.04 將vim配置成c++ IDE
1. ubuntu本身自帶的vim是tiny版的,所以最好在網上下在一個完整版的安裝.通過apt-get 命令安裝的也是精簡版的. 無論你裝的是vim或者gvim .這兩個沒有多大的差別.只是多了個圖形介面. 2.安裝好vim時可以制定安裝位置,也可以不指定安裝位
在Win7 32位系統中 將Sublime Text3配置成Python3.x 編輯器
1.下載Python3.5 注意下載windows版本 3. 配置過程 3.1 為安裝外掛做準備 1. 開啟控制檯 viwe -->Show console 2.
Ubuntu下用glade和GTK+開發C語言界面程序(一)
命令行 簡單的 暑假 all 位置 相同 write 3.0 面向對象的思想 前言:對於大學中計算機系的每年暑假的課設有太多想說的,能從中學到非常多東西,當然不排除打醬油的,這些能夠掠過哦,凡事都打醬油。人生也是打醬油的吧。2333。 對於大三曾經的課設一般的要求
Windows下配置Objective-C開發環境
hello rtc linker ces objc 安裝 指定 lighting 如果 一、IDE的安裝(Code::Blocks) 我們選用Code::Blocks作為IDE,它的安裝包可以從網上各處下載下來,對版本無特別要求。筆者使用的是16.10的版本(鏈接: htt
Ubuntu下VS Code的C++配置和的除錯
1. 系統環境和工具 系統環境 Unbutu 16.04; 下載VS Code 1.29 https://code.visualstudio.com/docs/languages/cpp#_getting-started; 2. 常用快捷鍵 Open t
Ubuntu下vim的外掛配置方法和問題彙總
1 安裝vim sudo apt-get install vim 2 建立屬於自己的vim配置檔案.vimrc vim ~/.vimrc 3 為你的命令列,tmux和vim安裝powerline外掛
Ubuntu下安裝配置NDK、獨立交叉編譯工具編譯C/C++程式
Android中IDE、ADT、SDK、JDK、NDK的解釋 1. IDE:Intelligent Development Environm的簡稱。即智慧開發環境。是一種開發工具。常用的IDE有adt-bundles和Android studio。兩個都需要配置jdk
將sublime 配置成python開發工具及如何更改IPython預設編輯器
sublime 很強大,具體怎麼強大就不說了,現在是如何配置python開發,記錄一下。 sublime package control 資料很多,就自己查了。 1、主題:Theme - Soda github上有,package install 也可以,反正你值得擁
Ubuntu 14.04下安裝eclipse搭建C++開發環境
安裝過程分為兩部分:1.JAVA開發環境,即JDK的安裝;2.eclipse的安裝; 一.安裝包下載 裡面有各種版本可供選擇,此處我選擇的是Linux x64版本,檔名為:jdk-8u91-linux-x64.tar.gz 選擇Eclipse IDE fo
將Vim配置為C/C++編輯器(IDE)
對於VIM外掛安裝,個人建議閱讀每個外掛的官方說明,如以下列出的外掛專案地址或者官網頁面,或者詳細閱讀外掛中的doc目錄下的說明文件,按照官方推薦的方式進行安裝,並獲取最新版本。話不多說,以下所有便是需要安裝的外掛列表。 Pathogen mkd
ubuntu下vim和Youcompleteme一起共建美好c++樂園
我主要參考的資料就是github上面的資料,最好仔細看看,一切以官方文件為準,很多人包括我自己不仔細看官方資料導致安裝外掛失敗 官方原文These instructions (using install.py) are the quickest way t
ubuntu下安裝 gSOAP 用於C/C++開發web service服務端與客戶端
首先下載gsoap,我下載的是gsoap-2.8.1.zip 用unzip gsoap-2.8.1.zip命令解壓縮,會解壓生成gsoap-2.8資料夾。 cd gsoap-2.8 在安裝之前需要先安裝一些編譯工具。 安裝編譯工具: $sudo apt-get install buil
Ubuntu下用glade和GTK+開發C語言介面程式(一)
前言:對於大學中計算機系的每年暑假的課設有太多想說的,能從中學到很多東西,當然不排除打醬油的,這些可以掠過哦,凡事都打醬油,人生也是打醬油的吧。2333。 對於大三以前的課設一般的要求都是用C寫的,即使你學的面向物件很好,也只能老老實實的來用C寫。當然這其中還有好多要說道的
ubuntu下vim安裝與配置
vim原始碼安裝 2、出現“YouCompleteMe requires Vim compiled with Python 2.x support”; 3、執行該命令: $ cd vim $ ./configure --enable-pythoninterp --w
Ubuntu 12.04 配置intel c++ compiler開發環境
之前一直在windows下開發,寫了很多內嵌彙編,現在要移植到Linux下,幸好intel編譯器支援Linux,這裡以Ubuntu 12.04作為系統平臺。 首先下載你想使用的intel編譯器版本,我這裡下載的是intel c++ composer xe 2013 sp1
Ubuntu下安裝配置eclipse開發IDE環境
將壓縮包eclipse-cpp-helios-SR1-linux-gtk.tar.gz拷貝到使用者目錄或其他目錄直接解壓 在應用程式——ubuntu軟體管理中搜索openjdk、g++,分別安裝,
把VSCode配置成C/C++開發IDE
工作一年多了,大學學的資料結構和演算法都忘得差不多了。於是想補補資料結構知識,並且刷一下劍指offer的一些面試題。首要問題就是裝個C語言的執行環境,大學學C語言和C++的時候都是用的VC++6.0或者CodeBlocks,優點是不需要配置環境,但是缺點也很明顯,就是程式碼沒智慧提