顯示具有 vim 標籤的文章。 顯示所有文章
顯示具有 vim 標籤的文章。 顯示所有文章

2010年12月19日 星期日

在 Mac OS X 10.4.11 上使用 MacPorts 1.9.1 來建立 Perl 以及 Python 的開發環境

在安裝 MacPorts 1.9.1 之前要把 Xcode 裝好
然後去下載 MacPorts 1.9.1 來安裝
之後再使用 root 權限執行下面這段 script 就大功告成啦~ :D
gist: 747325
#! /bin/bash
# Shih-Yuan Lee (FourDollars) <fourdollars@gmail.com>
# Mac OS X 10.4.11 + MacPorts 1.9.1 -- 2010/12/19

set -e -x

# Upgrade MacPorts
port selfupdate
port upgrade outdated || (port deactivate subversion && port clean subversion && port install subversion)

# Install Perl
port install perl5 +perl5_12

# Install Python
port install python27 +no_tkinter
port install python_select
python_select python27

# Install Vim
port install vim +perl +python27

# Install Git
port install git-core +python27

# Clean
port -u uninstall
以上這段 script 安裝了 perl/python/vim/git

2009年10月1日 星期四

Vim 編輯 Python 的設定

最近空閒時間都在學習寫 Google App Engine 上面的 Python 程式
剛剛研究了一會整理出這個簡單的設定
function! s:python_custom()
    function! s:man(keyword)
        execute '!pydoc ' . a:keyword
    endfunction
    setlocal tabstop=4 expandtab shiftwidth=4
    setlocal foldmethod=indent foldcolumn=4 foldlevel=3 foldnestmax=3
    command! -nargs=1 Man call s:man(<f-args>)
    cnoremap K :!pydoc <cword><CR>

endfunction
if has("autocmd")
    autocmd Filetype python call s:python_custom()
endif
開啟 Python 檔案時自動用縮排來 Folding 最多三層
縮排跟 Tab 都設定為 4 個空白
在關鍵字上按下 K 會透過 pydoc 去查詢使用說明
或是直接輸入 :Man list 這樣的指令
把上面那段 script 加到 .vimrc 裡面就可以使用了

2009年5月18日 星期一

Vim 套用 Markdown syntax

Markdown 是一套類似 WIKI 語法,可以快速生成 HTML 文件的工具。
因為自己有在使用 Vim 去編輯 Markdown 的檔案
所以找了一下給 Markdown 使用的 syntax
下載回來後放在 ~/.vim/syntax 底下
然後再新增編輯 ~/.vim/filetype.vim
augroup filetypedetect
    au BufNewFile,BufRead *.mkd      setfiletype mkd
augroup END
這樣一來就可以指定 .mkd 副檔名的檔案都使用 Markdown 的 syntax
另外 Markdown 也是 GitHub 上面官方支援的文件格式之一

2008年10月20日 星期一

Vim :set cursorline :set cursorcolumn



剛剛增加了兩個快速鍵到 ~/.vimrc 當中
nmap <S-F11> :set cursorline!<BAR>set nocursorline?<CR>
nmap <S-F12> :set cursorcolumn!<BAR>set nocursorcolumn?<CR>
效果就有如上圖囉~ 有水平跟垂直的標線~ ^o^

2008年7月8日 星期二

Vim 小技巧: 自動移除行尾多餘空白

在 $HOME/.vimrc 裡面加上
autocmd FileType c,cpp,java,php,perl,python,ruby,sh autocmd BufWritePre  :call setline(1,map(getline(1,"$"),'substitute(v:val,"\\s\\+$","","")'))
這樣就可以在每次存檔的時候,自動地把行尾多餘空白都移除掉囉~ 很好用吧~ ^~^

2008年7月6日 星期日

:help changelog

Vim 裡面有個組合鍵在寫 ChangeLog 的時候特別地好用
不過這個組合鍵只有在開啟 ChangeLog 這個檔案名稱才會起作用
組合鍵:
'\' + o

另外就是在 $HOME/.vimrc 可以指定使用者名稱
let changelog_username = "Shih-Yuan Lee (FourDollars) <fourdollars@gmail.com>"

有在寫 GNU Style ChangeLog 的人才會覺得這個功能好用吧~ :P

2008年6月19日 星期四

:help new-vimgrep

Vim 7.X 有一個相當實用的功能 vimgrep
相關的說明可以參考 :help new-vimgrep
我自己則是定義了三個快速鍵來使用
nmap <s-f9> viwy:vimgrep /\<<C-R>"\>/g **/*.[ch] **/*.[ch]pp **/*.java **/*.p[ly] **/*.rb<CR>
nmap <c-n> :cn
nmap <c-p> :cp
這樣就可以很方便地在 C/C++/Java/Perl/Ruby/Python 的程式碼樹當中快速搜尋關鍵字~
使用 Ctrl+n 來跳到後一個出現的地方
使用 Ctrl+p 來跳到前一個出現的地方
連 Google Search 都沒有這麼好用~ :P

:help new-vim-server

其實早在 Vim 6.X 的時候就有的一個功能
在 Ubuntu 8.04 上面要裝上 gvim 才能夠使用
就是先執行一個 vim 來當 server
vim --servername VIM file1.txt
然後再執行
vim --remote-tab file2.txt
就可以把 file2.txt 開個 tab 在前面那個 vim-server 裡面了~
詳細的說明可以參考 :help new-vim-server

2008年5月1日 星期四

vim + ydict

我很久以前有改寫過一個 ydict 的 Yahoo! 命令列字典
放在
http://fd.idv.tw/tux/ydict

後來在 $HOME/.vimrc 裡面加上一行
map <C-K> viwy:!ydict <C-R>"<CR>

然後就是每天爽爽地使用 vim 上的 Ctrl+K 快速翻譯英文或中文
或是拿來做為英文的錯字檢查
剛剛有人覺得我這個使用方式還蠻好用的就順便寫篇文章分享給更多人知道~ ^_^

2007年3月26日 星期一

vi 無所不在

根據小道消息(有人告訴我)
bash 中也有 vi
就是使用 set -o vi
這時候就可以開始使用 vi 模式
一開始會是 Insert Mode
當按下 Esc 後會進入 Command Mode
hjkl 左下上右
hl 會在目前的指令前後移動
jk 會在 history 前後項移動
另外像是 /? 可以搜尋啟動 vi 模式後所打過的指令
還有 x,X 可以刪除字元
dd 可以整行刪除
0 可以移到指令"前頭"
^ 可以移到指令"開頭"
$ 可以移到指令結尾
W,w,B,b,E,e 可以在單字間移動
v 會進入真正的 vi 介面
A,I,a,i 進入 Insert Mode
... 繁多不即備載
有興趣的朋友可以自己研究研究... ^_^
最後...
set -o 或是 set +o 可以看到其它可以玩弄的選項
所以想要離開 vi 模式就可以執行 set +o vi
不過這時候會覺得使用上會有點奇怪
像是上下鍵的 history 不見了
原來 bash 的預設值是設定成 emacs 模式
所以只要再執行 set -o emacs 就回復到原本的 bash 了
以上的操作是在 Fedora Core 6 上所觀察到的
其它的系統可能功能上稍有出入

2007年3月22日 星期四

什麼!vim 可以編輯 tarball !

這是真的!
剛剛在 Fedora Core 6 上
不小心對 tarball 使用了 vim
突然發現可以直接對 tarball 裡面的檔案做編輯
查了一下
# rpm -ql vim-common | grep tar.vim
/usr/share/vim/vim70/autoload/tar.vim
/usr/share/vim/vim70/syntax/tar.vim
原來是裝 tar.vim 這個 plugin 的關係啊!
喔齁齁~~~ ^o^

2007年3月13日 星期二

vim :TOhtml

#include <stdio.h>

int main(int argc, char *argv[])
{
printf("Hello World!\n");
return 0;
}

喔~ 效果還不錯喔~ ^_^