1. 程式人生 > >Windows下使用cmd + Vim進行程式設計(初級_vimrc配置(無外掛配置))

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的配置,大家可以上網搜一下。。。