Androidプログラム代写ネットプログラム代写[原]vimエディタ構成と常用コマンド

25094 ワード

最近仕事が不安で、ちょうど入行した时の锐気がなくて、いつから怠け始めたのか分からないで、周末にパソコンのそばでニュースを见て、お笑いのピクチャーをして、米剧を追いかけて、座ると1日で、とても空虚です.私はこのような状態から抜け出す必要があります.ちょうどアンドロイドの底を学びたいです.Android私たち、C/C++の底が少し悪いです.Androidカーネルのソースコードも見るのに苦労しています.いっそ埋め込み式のクラスを報告しました.週末のクラスです.幸いにも私は北京で、家の訓練機関を探して埋め込み式の開発を勉強し始めました. 
C言语の基础があまりにも悪いので、クラスに従って最も基础的なことから学びましょう、Linux C开発、vimエディタを使って开発して、vimエディタを使いこなさなければならなくて、このブログの中でvimを総括します;
一.vimのプロファイル
ショートカットキーの利点:
F 5自動コンパイルC/C++ファイル
F 8自動デバッグC/C++ファイル
F 2空行クリア
F 3現在のファイルディレクトリを一覧表示する
Ctrl+P自動補完
Ctrl+A全選択コピー
フィーチャーの編集:
自動生成C/C++Javashファイルヘッダ
かっこ一重引用符自動補完
vimを使い始めたばかりの頃は、使いにくいと思っていましたが、括弧やif文などを使うたびにインデントし、行番号がなく、コンパイルや実行エラーが発生した後、エラーを見つけにくくなりました.これらはプロファイルで設定できます.
vimプロファイルは、①etc/vimrc②root/.vimrc
2番目の格納場所は、ユーザディレクトリ(~/)の下にある隠しファイルである、ファイル名の前に1つあることに注意する.符号 
1.基本構成
set nu  "      
set guifont=Courier_New:h10:cANSI  "     
set syntax=on"     
autocmd InsertLeave * se nocul  "           
autocmd InsertEnter * se cul  "           
set showcmd  "          ,      
set background=dark  "        
set nocompatible   "        vi     ,         bug     
2.コード折り畳み構成
set foldcolumn=0
set foldmethod=indent 
set foldlevel=3 
set foldenable              "     
3.インデント設定
set autoindent  "     
set cindent  "     
set tabstop=4  " Tab    
set softtabstop=4  "      4
set shiftwidth=4  "      4
set noexpandtab  "           
set smarttab  "             
4.文字化けしの設定
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
5.ファイルの自動読み書き
set autoread  "              
set autowrite  "    
6.C/C++Java shファイル自動挿入ファイルヘッダ
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
    "     ,         
    autocmd BufNewFile * normal G
endfunc 
7.キーボードコマンドを追加
次のmap+ショートカット+コマンドは、対応するコマンドにショートカットキーを関連付けることができ、ショートカットキーを押すことはこれらのコマンドを実行することに相当する.
nmap <leader>w :w!<cr>
nmap <leader>f :find<cr>
(1)マッピング全選択+コピー
Ctrl+Aキーは、すべてのコピーに相当します.
"     +   ctrl+a
map <C-A> ggVGY
map! <C-A> <Esc>ggVGY
map <F12> gg=G
(2)選択した状態でコピー
Ctrl+Cキーでコピー
"       Ctrl+c   
vmap <C-c> "+y
(3)空行を除く
F 12を押して空白行を削除します
"     
nnoremap <F2> :g/^\s*$/d<CR> 
(4)比較ファイル
Ctrl+F 12ファイル比較
"      
nnoremap <C-F2> :vert diffsplit 
(5)新規ラベル
M+F 2ラベルを新規作成
"      
map <M-F2> :tabnew<CR>  
(6)ディレクトリファイルのリスト
F 3キー現在のディレクトリファイルを一覧表示
"          
map <F3> :tabnew .<CR>  
(7)ツリーディレクトリを開く
Ctrl+F 3ファイルディレクトリを開く
"          
map <C-F3> \be  
(8)C/C++ファイルのコンパイル
F 5によるC/C++ファイルの自動コンパイル
"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'
        :!./%
    endif
endfunc
(9)C/C++ファイルのデバッグ
F 8でC/C++ファイルをデバッグする
"C,C++   
map <F8> :call Rungdb()<CR>
func! Rungdb()
    exec "w"
    exec "!g++ % -g -o %<"
    exec "!gdb ./%<"
endfunc
8.各種括弧引用符の自動補完
"    
: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

9.プロファイルの例
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"       

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"set shortmess=atI   "                       

"winpos 5 5          "         

"set lines=40 columns=155    "         

"set nu              "       

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 


 
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



"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"""""     """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"  .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

    "     ,         

    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'

        :!./%

    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

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" CTags     

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

let Tlist_Sort_Type = "name"    "         

let Tlist_Use_Right_Window = 1  "          

let Tlist_Compart_Format = 1    "       

let Tlist_Exist_OnlyWindow = 1  "       buffer,kill   kill buffer  

let Tlist_File_Fold_Auto_Close = 0  "          tags  

let Tlist_Enable_Fold_Column = 0    "          

autocmd FileType java set tags+=D:\tools\java\tags  

"autocmd FileType h,cpp,cc,c set tags+=D:\tools\cpp\tags  

"let Tlist_Show_One_File=1            "          tag,        

"  tags  

set tags=tags  

"set autochdir 



""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"    

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"    Taglist 

let Tlist_Auto_Open=1 

"""""""""""""""""""""""""""""" 

" Tag list (ctags) 

"""""""""""""""""""""""""""""""" 

let Tlist_Ctags_Cmd = '/usr/bin/ctags' 

let Tlist_Show_One_File = 1 "          tag,         

let Tlist_Exit_OnlyWindow = 1 "  taglist         ,   vim 

let Tlist_Use_Right_Window = 1 "        taglist  

" minibufexpl       

let g:miniBufExplMapWindowNavVim = 1

let g:miniBufExplMapWindowNavArrows = 1

let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1
二.VIMエディタコマンド
ファイルを開くコマンド:
vim diff a.cb.cコマンドは2つのファイルを開き、2つのファイルを比較します.
vim-p a.c b.cは複数のファイルを開き、マルチラベルで開く
1.モード間の変換
コマンドステータス:vimファイル名vimエディタに入るのが一般的なモードで、このモードでカーソルを移動したり、ページをめくったりすることができます.
コマンドライン状態:一般モードではコロンを押し、コマンドラインモードに入ります.コマンドラインモードのコマンドはコロンを押してからコマンドを入力します.
編集ステータス:このモードでテキストを入力できます. 
コマンドステータス->挿入ステータス:i o a
挿入ステータス->コマンドステータス:esc
コマンドステータス->コマンドラインステータス:コロン
コマンドラインステータス->コマンドステータス:リターン
2.コマンドモード共通コマンド
(1)挿入モードコマンドに入る
iカーソル位置の文字の前に入力
aカーソル位置の文字の後に入力
oカーソル位置の次の行に入力
(2)カーソル移動コマンド
0カーソルを1行目に移動
$カーソルを最後の行に移動
PageUpを1ページ上にスクロール
PageDoenは1ページ下にスクロール
Gドキュメントの最後に移動
ggドキュメント開始に移動
(3)削除コマンド
D改行最後のテキストへのカーソルの削除
dd 1行削除
dGドキュメントの最後のテキストへのカーソルの削除
dggドキュメントの開始文字にカーソルを削除
(4)置換と還元
R置換モードに入り、escを知るまで
Sは行全体の内容に取って代わる
uキャンセル操作(undo)
(5)コピーペーストコマンド
yyカーソルがある行全体をコピー
n+yyカーソル位置および次のn行をコピー
y 0行ヘッダにコピー
yGを行末にコピー
pカーソルの後ろに貼り付け
Pカーソルの前に貼り付け
注意点:
「.」コマンドは、任意のコマンドを繰り返す.
削除すると、置換されたコンテンツがバッファに格納されます.
3.コマンドラインモードでのコマンド
(1)検索コマンド
/このキーを押して、探している文字を入力し、Enterキーを押して探し始めます
n正の方向を探し続ける
N逆方向に探し続ける
*カーソル位置のワードを探します(完全に一致する)
(2)マルチドキュメントを開く方法
vim file 1 file 2複数のドキュメントを開く
:n次のファイルを編集する
:N前のファイルの編集
:e fileはVIMエディタで他のファイルを開きます.tabキーでファイル名を補完できます.
作者:han 1202012发表于2013-11-21 21:03:50
テキストリンク
読書:102コメント:2
コメントの表示