在Linux環境下安裝gcc/g++/gdb/vim,以及進行vim的配置

在Linux中配置文件的位置 在目錄 /etc/ 下面,有個名爲vimrc的文件,這是系統中公共的vim配置文件,對所有用戶都有效。而在每個用戶的主目錄下,都可以自己建立私有的配置文件,命名爲:“.vimrc”。例如,/root⽬目錄下,通常已經存在一 個.vimrc文件。

首先我們先執行ls -a命令查看以.開頭的隱藏文件看是否有.vimrc文件
如果沒有該文件 ,在當前用戶的主工作目錄下創建一個 .vimrc 文件,
輸入如下:
cd ~/
vim .vimrc

然後使用命令vim進入該文件
在文件中輸入配置信息

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: GuoWenTao")   
        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: GuoWenTao")   
        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>    


let Tlist_Show_One_File=1  
let Tlist_Exit_OnlyWindow=1  
let Tlist_Use_Right_Window=1  

let g:winManagerWindowLayout='FileExplorer|TagList'  
nmap wm :WMToggle 

根據自己的需要,可將想要實現此功能的代碼進行釋放。

下面進行gcc/g++/gdb的安裝步驟如下:

使用命令which gcc查看是否已安裝gcc,切記以下操作均在root權限下進行
這裏寫圖片描述
在圖中我們可以看到並沒有安裝gcc,現通過yum指令進行gcc安裝,指令如下:
yum install gcc
這裏寫圖片描述
當出現以下界面並出現Complete!時,則表示安裝完成。
這裏寫圖片描述
安裝gdb/g++均與上步驟相同

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章