Windows下使用cmd + Vim進行程式設計(初級_vimrc配置(無外掛配置))
目錄
- 說明
- 下載安裝gvim,配置環境變數,設定管理員開啟cmd
- cmd下使用vim開啟檔案並程式設計
- _vimrc的簡單配置
- vim下一些簡單的操作
- g++命令編譯執行main.cpp檔案
- Vim常用操作總結
- 小結
說明
很多搞演算法的同學喜歡用codeblocks寫c,c++,現在ACM區域賽中大部分使用linux下的vim進行程式設計,使用vim程式設計最大的好處就是可以脫離滑鼠進行程式設計,還有就是使用vim程式設計起來也更有感覺,一開始以為只有在linux下才能使用vim進行程式設計,後來瞭解到在windows下也可以使用vim進行程式設計,但是使用vim程式設計也是有一些要注意的地方。
- 明白使用vim開啟(建立檔案)。
- 要配置_vimrc檔案(使得有基本的codeblocks的操作如括號配對,高亮)。
- 瞭解vim程式設計中基本的操作如撤銷u,全選ggVG,刪除d,等等(這些在下面的文章中會提到)。
重點:之所以要寫這篇文章是因為我之前在linux中配置了vim,但是到windows這邊配置的時候網上沒有找到比較合適的文章(大部分都是要配置外掛,這些外掛在後期可以用到,但是對於剛入門的新手在配置vim基本功能的時候未免有點繁瑣)基本的配置就是想要在cmd中開啟檔案,然後從cmd直接跳轉到vim中進行程式設計。 就是說在cmd下輸入vim 檔名可以使用vim來對檔案進行操作,效果如圖:
下面一步步來配置:
下載安裝gvim
- 下載 : 在vim的官網找到相應的window版安裝包下載即可。
- 安裝 : 直接按照相應的步驟安裝完。
效果如圖:
這裡主要講vim的配置(在cmd中開啟)。 - 環境變數的配置:
先找到系統屬性(我的電腦中找或者直接搜尋)。
然後點選編輯系統變數。
這時候我們把vim的安裝目錄下的vim80加入到系統path環境變數中。
- 設定管理員開啟cmd: 一般的人的win+R開啟cmd可能不是以系統管理員的身份開啟的,而使用vim編輯檔案時(在cmd中開啟)需要系統管理員身份,這是我們可以設定每次開啟cmd的時候預設使用系統管理員身份開啟,步驟如下:
cmd下使用vim開啟檔案並程式設計
配置好上面的步驟之後,我們就可以在cmd中開啟相應的檔案了:
- 先使用dos命令開啟一個目錄:
- 然後使用vim main.cpp(使用vim開啟main.cpp檔案)
- 此時main.cpp就在vim中打開了(注意此時你的vim介面可能沒有這麼好看(還沒有配置_vimrc檔案))
_vimrc的簡單配置
為什麼要配置vim呢:因為
- vim一開始的介面醜,沒有語法高亮;
- tab鍵是8個空格,不方便;
- 括號沒有自動匹配,等等;
怎麼配置呢,首先我們找到vim安裝目錄下的_vimrc檔案:
可以使用記事本開啟直接編輯:然後進行相應配置,vimrc檔案的配置原始碼可以好好讀一下,還是有點用的,我這裡把我的_vimrc檔案貼出來(直接把我的拷過去複製貼上全部覆蓋),我覺得已經可以滿足我平常用寫寫演算法題的需求了(這裡暫時沒有外掛,沒有使用GDB除錯(有興趣的可以去網上搜))
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
"source $VIMRUNTIME/mswin.vim
"behave mswin
set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction
"設定檔案的程式碼形式 utf8
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf-8,chinese,cp936
"vim的選單亂碼解決
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
"vim提示資訊亂碼的解決
language messages zh_CN.utf-8
filetype on
filetype plugin indent on
"colorscheme evening "配色方案
colorscheme desert
set helplang=cn "設定中文幫助
set history=500 "保留歷史記錄
set guifont=Monaco:h10 "設定字型為Monaco,大小10
set tabstop=4 "設定tab的跳數
set expandtab
set backspace=2 "設定退格鍵可用
"set nu! "設定顯示行號
set wrap "設定自動換行
"set nowrap "設定不自動換行
set linebreak "整詞換行,與自動換行搭配使用
"set list "顯示製表符
set autochdir "自動設定當前目錄為正在編輯的目錄
set hidden "自動隱藏沒有儲存的緩衝區,切換buffer時不給出儲存當前buffer的提示
set scrolloff=5 "在游標接近底端或頂端時,自動下滾或上滾
"Toggle Menu and Toolbar "隱藏選單欄和工具欄
"set guioptions-=m
"set guioptions-=T
set showtabline=2 "設定顯是顯示標籤欄
set autoread "設定當檔案在外部被修改,自動更新該檔案
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set mouse=a "設定在任何模式下滑鼠都可用
set nobackup "設定不生成備份檔案
"set go= "不要圖形按鈕
set guioptions-=T " 隱藏工具欄
"set guioptions-=m " 隱藏選單欄
"===========================
"查詢/替換相關的設定
"===========================
set hlsearch "高亮顯示查詢結果
set incsearch "增量查詢
"===========================
"狀態列的設定
"===========================
set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%] "顯示檔名:總行數,總的字元數
set ruler "在編輯過程中,在右下角顯示游標位置的狀態行
"===========================
"程式碼設定
"===========================
syntax enable "開啟語法高亮
syntax on "開啟語法高亮
set showmatch "設定匹配模式,相當於括號匹配
set smartindent "智慧對齊
"set shiftwidth=4 "換行時,交錯使用4個空格
set autoindent "設定自動對齊
set ai! "設定自動縮排
"set cursorcolumn "啟用游標列
"set cursorline "設定高亮當前行(這裡我註釋了)
hi CursorLine cterm=NONE ctermbg=darkred ctermfg=white guibg=darkred guifg=white
set guicursor+=a:blinkon0 "設定游標不閃爍
set fdm=indent "
" 關閉NERDTree快捷鍵
map <leader>t :NERDTreeToggle<CR>
" 顯示行號
let NERDTreeShowLineNumbers=1
let NERDTreeAutoCenter=1
" 是否顯示隱藏檔案
let NERDTreeShowHidden=1
" 設定寬度
let NERDTreeWinSize=21
" 在終端啟動vim時,共享NERDTree
let g:nerdtree_tabs_open_on_console_startup=1
" 忽略一下檔案的顯示
let NERDTreeIgnore=['\.pyc','\~$','\.swp']
" 顯示書籤列表
let NERDTreeShowBookmarks=1
inoremap { {}<ESC>i
hi MatchParen ctermbg=DarkRed guibg=lightblue
set clipboard=unnamed
set number
set smartindent
vim下一些簡單的操作
配置好了_vimrc檔案之後我們就可以在cmd中使用vim main.cpp開啟main.cpp檔案了,進入到如下的介面之後,我們要進行程式設計,先要了解vim的一些模式,正常模式,輸入模式,命令模式。這裡我只講基本的,用的比較多的。
- (正常模式)當前游標下按 i,進入插入模式,可以進行編輯;
- 在插入模式下,按ESC鍵回到正常模式,輸入 :wq,回車,儲存並退出;(記得輸入冒號)
- 在插入模式下,按ESC鍵回到正常模式,輸入 :q!,回車,強制退出;(記得輸入冒號)
- 正常模式下刪除一行:dd;
- 正常模式下撤銷 : u;
- 正常模式下全選刪除 : 先按ggVG ,然後按d
這裡只說了一些常見的,更多的可以網上搜,這裡給出兩個部落格:
部落格1
部落格2
可以好好學一下vim基本操作。
g++命令編譯執行main.cpp檔案
當我們寫好了main.cpp檔案時,使用:wq儲存退出後,我們可以使用g++命令來編譯c++檔案
g++ -o main main.cpp
這時目錄下就會生成main.exe 檔案
然後我們執行main.exe(直接輸入main.exe即可)
當然也可以使用in.txt檔案輸入,out.txt輸出
g++ -o main main.cpp //編譯
main.exe //執行
main.exe < in.txt //in.txt中輸入檔案
main.exe > out.txt //輸出到out.txt中
main.exe <in.txt> out.txt //in.txt中輸入檔案 and 輸出到out.txt中
Vim常用操作總結
請轉 這篇部落格。持續更新Vim操作總結。
小結
可能有些細節沒有說明白,這篇文章主要是vim的基礎配置,我也只是個小白,主要也是方便自己以後如果忘記了這些操作可以複習一下,也是方便自己寫c++(大多數時候自己還是寫Java),至於外掛以及GDB的配置,大家可以上網搜一下。。。