2009年2月7日 星期六

GVimPortable

有些人在windows下要編輯一下程式碼,用「記事本」實在太陽春了,
寫程式當然不會用office之類的大型軟體,
當然還有其它很好的程式編輯軟體,
但是,今天要介紹的是GVimPortable。

在Unix-Like下,我想大家都應該知道一個非常好用的編輯軟體vi/vim
檔案雖然不大,但是功能確非常完整。
尤其要透過遠端修改程式碼時,更是常用的一個工具。

GVim主頁面

有「安裝檔」與「免安裝檔」
而我當然是用「免安裝檔啦」

在vim可以設定許多功能開啟,
而在GVimPortable則是要修改
GVimPortable\Data\settings\vimrc
使得當開啟GVim時,會載入你的設定值
以下是我vimrc的內容

GVimPortable\Data\settings\vimrc
:set nu
:set hlsearch
:set showmode
:set ruler
:syntax on
:set backspace=2
:set autoindent
:set tabstop=8

相關一些功能也可以參考這裡

其實在GVIM本來就有設定一些特效,若是透過上面設定參數,每一次開啟檔案,在畫面的最下面會出現一些資料,很礙眼,而且會取代原本GVIM的設定。
現在發現一個新的地方
GVimPortable\App\DefaultData\settings\vimrc
可以直接對它修改,如此一來可以保留GVIM的一些蠻好的設定,自己又可以增加一些自己想要的設定。
另外,在這一個檔案設定的指令前面不需要加分號,例
:set no
只要打
set no
就好

另外一個問題,就是在GVIM打開在linux下完成的檔案,會出現亂碼,只要在上面所說的這一個檔案增加一下內容就可以顯示正常啦~

set fileencodings=ucs-bom,utf-8,gbk,big5,latin1
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8


[2009/10/14 補充]
最近因為工作的關係,需要在windows下編輯程式,之前都在Linux使用vim來寫程式,實在非常好用!因為,現在整理一下,在windows下的GVim的設定值是如何設定的
GVimPortable\Data\settings\vimrc
不在在gvim7.2的設定檔位置在GVimPortable\Data\settings\_vimrc
" 用雙引號當作註解

" 設定背景為藍色
" 設定檔放在$VIM$/vimfiles/colors/
colorscheme darkblue

" 設定在insert mode可以使用backspace
set nocompatible

" 設定在換行時,設定自動縮排
set autoindent

" 設定可以使用backspace移到上一行
set backspace=2

" 設定顯示行數
set nu

" 右下角顯示目前指標的訊息與目前的模式
set ruler

" 依特殊副檔名,顯示相對應的格式
syntax on

" 顯示所有符合要search的keyword
set hlsearch

" 設定每按一個tab鍵,會移動兩個空白鍵的距離
set tabstop=2

" 把tab鍵轉換成相對應的空白鍵
" 如果真的要打 Tab: ctrl + v + [tab]
set expandtab

" 設定字型為Consolas且字型大小為14
set gfn=Consolas:h14

" 不自動存檔
set nobackup

" 自動找對應括號
set showmatch

" 在normal mode按 >> 的跳的格數
set shiftwidth=2

" 設定數字與的左邊邊距
set numberwidth=4

" 設定記錄指令50筆
set history=50

" display incomplete commands
set showcmd

" 設定開啟ctags視窗
" nnoremap :TlistToggle

" 讓當前沒有被編輯的文件自動摺疊起來
let Tlist_File_Fold_Auto_Close=1

" 寫 C 時很好用,indent 比一般敏感,專為 C 程式碼而設。預設 off。編輯 C/C++ code 時會自動打開
" set cindent

" 狀態列的行數,預設一行,建議設成兩行。
set cmdheight=2

" 這是防止在做剪貼時位置會不正確
set paste

" 設定tabt頁面的最大值
set tabpagemax=30

" 可以讀取Unicode的檔案,且不會產生亂碼的選單
set encoding=utf-8
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

" 這也可以算是一種模式,list mode。就是 Tab 的地方會以 ^I 顯示,而行尾之 EOL 會顯示成 $。可以讓您清楚的知道 Tab 在哪裡,換行是不是真的。
" set list

" search英文字不要分大小寫
" set ignorecase

" 設定檔案為C格式,特特殊字元會highlight
" set ft=c

" 設定編輯為Unix的檔案格式
" set ff=unix

" 設定超出行,仍不要自動換行
" set nowrap

" 加入tabnew, tabprevious, tabnext的快速鍵
nmap <C-t> :tabnew<CR>
nmap <C-Left> :tabprev<CR>
nmap <C-Right> :tabnext<CR>

" 只留下路徑上的檔案名稱
nmap <F4> :%s/.*\\\(.\+\)$/\1/g<CR>

" 移除每一行最後多餘的空白
nmap <F6> :%s/ \+$//gc<CR>

" 加入多個要search的關鍵字
nmap sa :exec "/" . getreg ('/') . "\\\\|" . "\\<" . expand("") . "\\>"<CR>

" 在目前的游標位置加入目前的日期與時間
nmap <C-n> "=strftime ("%Y.%m.%d-%H.%M.%S")<C-M>p


另外,要在windows下用GVim來search多個檔案的內容的話,請參照
Grep search tools integration with Vim
同時也可以安裝windows下的grep與find的指令喔,不過,要設定環境變數,才可以找到指令。
而這裡有一堆可以在Windows下使用的指令
GnuWin32
有空找一個時間研究一下

參考資料:
Win32平台下的_vimrc
gvim 亂碼的問題
不是打 vi 的廣告, vim 的環境設定 ( vimrc )
[Vim 筆記] TAB SPACE
vim 小技巧 : 行數的顯示與利用
大家來學VIM
vim 的設定與一些快捷鍵
gvim 設定
打造自己的VIM
The Vim Editor
Grep search tools integration with Vim
set 功能設定
史上最強大的vimrc

沒有留言: