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

6/18/2007

Textile,RedCloth,Vim

Textile

有在用 Instiki 的人就知道,他是使用 Textile 這種語法。當 Web 大流行之後,大家發現到 Web 當中的核心 HTML 語法,雖然設計的很有彈性,但是 HTML 實在不是為了方便人書寫而設計的,裡面格式相當的囉唆而且難以書寫閱讀。為了書寫方便,所以產生 Textile 這種 Light Weight Markup Language 語法。

Textile 的使用方式就不再詳加介紹了,可以看看 Wikipedia的介紹 ,總之 Ruby on Rails 上面很多套件都相當友善的支援 Textile。




Red Cloth

剛剛說到 Ruby and Ruby on Rails 上面很多套件都支援 Textile,他們都是靠 RedCloth
這個 Gem 來支援的。他是一個相當容易使用的 Ruby Plugin,安裝方式就是

gem i redcloth

而使用方式就是

require ‘redcloth’
html = ”strong text and emphasized text
r = RedCloth.new(html)
r.to_html

如何,很容易看的懂吧。

vim

剛剛看到網路上面強者這篇 Editing Textile in VIM ,裡面介紹如何使用 Vim 來編輯 Textile,並且提供 Textile Syntax File [1]。要使用他首先得先把這個 text.vim 放到 /.vim/syntax/ 底下,再來>將 /.vim/filetype.vim 加入一行

au BufNewFile,BufRead *.textile setf textile

假設使用 vim 編輯副檔名為 textile 的檔案,例如 xxx.textile,你就會發現他已經 S#ntax Highlight 過了。

註1 我的 Mirror


6/10/2007

vim 上面使用 ruby 的方式

最近聽到有人在問 vim 上面怎麼使用 ruby,尤其是怎麼縮排的問題,我在這邊稍微提一下怎麼用。其實 vim 的設計就是使用 configuration 來做到支援不同語言,但是撰寫 vim 設定檔其實不是一件很簡單的事情,所以才有 vim-ruby 的存在。vim-ruby 是一個 gem package,只要使用他就可以幫你簡單的做好 vim 上面對 ruby 的支援。


安裝 vim-ruby
gem i vim-ruby

安裝 vim-ruby configuration file
vim-ruby 有附一支 ruby script ,叫做 vim-ruby-install.rb,在安裝 vim-ruby gems 之後,你的路徑下面就會出現這隻 script ,請打入
vim-ruby-install.rb
幫助你自動的把相關的 Syntax ,indent config 檔案放到相關的目錄下。以下就是他會出現的選項
Possible Vim installation directories:
1) /home/wisely/.vim
2) /usr/share/vim/vimfiles
第一個是在講說,將相關 vim-ruby config 安裝在自己目錄下面,只有自己可以使用。第二個就是放在系統的 vim config 下面,不過你當時的權限要 root 才能安裝。原則上兩個都可以啦。

不能縮排的解法

本來這樣的步驟,在我 notebook 上面這樣就可以完全無誤的使用了。但是當我最近新裝另外一台機器的時候,我發現裝好 vim-ruby 之後,很奇怪的 vim 有 syntax highlight,但是卻沒有程式碼縮排。

後來我發現到,只要將我 notebook 上面的 .vimrc 放到新裝的機器上面即可做到縮排,所以
問題不在於 vim-ruby,而是沒有適當的 .vimrc
雖然用 vim 很久了,但是依舊沒有很深入的去了解怎麼去設定,真是很慚愧。不管怎麼說,我先將我的 .vimrc 放上網路,大家確認一下是否可以使用。這隻 .vimrc 陪我征戰大江南北,目前為止還不錯用。

UPDATE:

根據網友提醒,Ruby on Rails Wiki 網頁有講到只要在 .vimrc 裡面加入
set nocompatible " We're running Vim, not Vi!
syntax on " Enable syntax highlighting
filetype plugin indent on " Enable filetype-specific indenting and plugins

" Load matchit (% to bounce from do to end, etc.)
runtime! macros/matchit.vim

augroup myfiletypes
" Clear old autocmds in group
autocmd!
" autoindent with two spaces, always expand tabs
autocmd FileType ruby,eruby,yaml set ai sw=2 sts=2 et
augroup END
這些即可。