沒穿方服

索引

顯示╱隱藏內文

Tmux 1.7 新增的 bracketed paste mode 支援,可以讓 Vim 分辨現在是 tmux 貼上而不是手動打字。

引用 Bracketed Paste Mode | dodaの日記 | スラッシュドット・ジャパン(稍有修改):

" Ref http://slashdot.jp/journal/506765/Bracketed-Paste-Mode
" - Use tmux 1.7 `paste-buffer -p` to paste
" - Use <F11> and tmux `send-keys "\e[201~"` for pastetoggle
if &term =~ "xterm" && exists('$TMUX')
  let &t_ti = &t_ti . "\e[?2004h"
  let &t_te = "\e[?2004l" . &t_te
  let &pastetoggle = "\e[201~"
  map <F11> <Esc>[201~
  imap <F11> <Esc>[201~

  function! XTermPasteBegin(ret)
    set paste
    return a:ret
  endfunction

  map <special> <expr> <Esc>[200~ XTermPasteBegin("i")
  imap <special> <expr> <Esc>[200~ XTermPasteBegin("")
  cmap <special> <Esc>[200~ <nop>
  cmap <special> <Esc>[201~ <nop>
endif

\e[?2004h\e[?2004l 是啟用括弧貼上模式的控制碼,即 XTerm Control Sequences 中的
P s = 2 0 0 4 → Set bracketed paste modeP s = 2 0 0 4 → Reset bracketed paste mode

Tmux 1.7 的 paste-buffer 指令新增了 -p 選項,會在貼上文字前加 ESC[200~、後加 ESC[201~ 控制碼。 (參考 SF.net SVN: tmux:[2712] trunk

利用這兩個控制碼設定 mapping,就能自動調整 'paste' 的狀態了。

不過這個 pastetoggle 會把原本的設定蓋掉,變得無法一鍵切換 'paste'
將就方案是在 tmux 設定,例如我原本是用 <F11>,就加上 bind F11 send-keys "\e[201~"

預設的 :TOhtml 會生成整個 HTML document,我只要其中的 <pre>...</pre> 部分而已,於是寫了一層 function 處理,原功能則改名 TOhtmlDoc。

最近發現這 function 失效,似乎是 TOhtml 在七月有變更,原輸出 <pre> 會變成 <pre id='vimCodeElement'>

修正後 script 如下:

let g:html_no_progress = 0
let g:html_use_css = 1
let g:html_ignore_conceal = 0
let g:html_pre_wrap = 0
let g:html_use_xhtml = 0
function! s:to_html(line1, line2)
  let save_number = get(g:, 'html_number_lines', -1)
  let g:html_number_lines = 0
  call tohtml#Convert2HTML(a:line1, a:line2)
  setlocal buftype=nofile bufhidden=hide noswapfile nobuflisted
  call search("<pre[^<]*>")
  normal! dit
  %delete _
  let @" = '<pre>' . substitute(@", '\v^\n\s*', '', '') . '</pre>'
  call setline(1, split(@", '\n'))
  if save_number > -1
    let g:html_number_lines = save_number
  else
    unlet g:html_number_lines
  endif
endfunction
command! -range=% TOhtml :call <SID>to_html(<line1>, <line2>)
command! -range=% TOhtmlDoc :call tohtml#Convert2HTML(<line1>, <line2>)

之前 keitheis 提到比 ack 更快的 Ag (the_silver_searcher),已經成為我 search 的首選了。

ack > grep 我不以為然,但 ag 用起來就真的時髦又開心。 也不是因為快,就是指令符合懶惰需求,且沒有一些不解意圖的設計。


從 source 安裝比較實用

真正感到 stable 也是最近的事而已,所以正式 release 前,就直接 builing from source 吧,地雷可能比較少。

(version 0.14pre) 近期漂亮開發進展:

  1. #98 Files with non-english characters are trait as binary files
    修正特定檔案——例如中文較多的 html——誤判為 binary file 而被略過的問題。
  2. #110 Remove a leading "./" before printing by AndrewRadev
    移除輸出前頭的 ./ 顯示,較接近 ack/grep 行為。
  3. #90 Make colors configurable
    輸出色彩(path、line-number、match 部分)終於可以設定了。

我的設定

因為 Ag 還不支援設定檔,所以設定就是 .zshrc 裡的 alias 爾。
輸出調成類似 grep 的樣子。 再來個 agjs alias 專門搜專案中未壓縮的 JavaScript。

() {
  local common='noglob ag --nobreak --nogroup --noheading --smart-case --depth=27'
  local colors='--color-path 35 --color-line-number 32 --color-match "1;31"'
  alias ag=$common' '$colors
  alias agjs=$common' '$colors' -G public/javascripts/.*-(debug|src).js'
}

擷圖:

ag 輸出的樣子

neocomplcacheneocomplcache-snippets-complete 再到 neosnippet,舊設定基本上不必修改。 如 README #Configuration 的內容就很好用,而即使沿用舊 command 名稱、不換成 neosnippet#expandable 等新名字也還是相容。

不過 snippet 語法有變(doc FAQ 有寫),我的 1 個展開就這麼壞了。

例:Ruby 的 in 展開為 inspect

NeoSnippet 預設不會在 .in 的情境(前文是 .)展開,要加上 options word 才行。解決。
另外多了 regexp 選項,可以限制在 . 之後的 in 才展開,又比以前更聰明了。

snippet inspect
alias in
regexp '\.in'
options word
  inspect
※ 這個 snippet 其實改成 snippet .in 也行啊。

DAY OF RECKONING 2012: Cannibal Corpse 血濺台北演唱會

砍你爸殭屍 + 賽

我又一個人來 The Wall

不過現在比較親切,跟我問路什麼的,都會得到積極幫助喔。
※以前沒辦法,我自己也搞不清狀況。

SIGH 也是重點

本來 CC 就是必看,但公佈暖場團時更是大驚,居然有日本知名前衛黑 SIGH!

在音樂探索路上,應該不少探險家接觸過他們,尤其 1997 的「葬式劇場」是我個人最愛,仿彿能劇的詭異風格,速度慢、不複雜,但感覺有鄉野傳奇般的真正邪惡。

我從沒看過 SIGH 的演出,只知道後來有個穿很少的女主唱,很疑惑他們的歌,哪來的女聲啊…… 而且以暖場來說,大概只能唱 Inked In Blood 這類衝刺的歌,新專輯「In Somniphobia」銷魂的慢版 Amnesia、Far Beneath the In-Between 應該不會出現。

誰準你拍照的!

現場的情況,第一個暖場團 Revilement (Taiwan) 退場後,想說可以休息一下,沒想到怎麼變擠了? 急卡回去後,偷聽身邊玩笑話,不少人這次重點都是 SIGH 啊…… 一群臭男生在討論 Dr. Mikannibal 會站哪裡、怎樣怎樣的話題,我隱隱有種「我才不吃豬哥行銷那套」的孤立感。

結果她從一開始的脫下大衣裸露,到最後滿身鮮血淚(血)光閃閃謝幕,整場都在我正前方,不好意思啦各位。

我喜歡! 男主唱也是儀式特多,邊唱邊拿繩索自助上吊,非常奇妙啊……

幾乎每首都是快速爽歌,左右男女多少還能合唱,果然是暗中養粉絲的團。 而個人最興奮的是有唱「葬式劇場」中的 Shingontachikawa(真言立川),我根本不懂在唱啥,因為歌詞有點白痴,但這是整個夜晚我最享受的一首了。

薩克斯風中途登場,期待接下來是……

Cannibal Corpse 撞況

以往第一排後通常都捲得進 circle pit,這次前三排卻只能當肉墊……
前線有好幾個老外,身高關係我困在裡面就像生吞落胃消化中的食物,有點噁心所以我游開了,真佩服現場嬌小女孩的勇氣。

被壓制了幾首歌才進戰區送死,我好矮,只要有空間就容易被撞跌倒,必須尋找特殊兵種的存活方式才行。

想像中的死金大概也是這樣

其實我 death metal 聽很少,還在每首歌呼嚕呼嚕差不多的階段。 但印象中跟 thrash 路線相近、有足夠幽默感,也不會狀模作樣,是理想的音樂型態。 見識主唱 Fisher 的樣子還挺符合我的想像: 試音講話的聲音就是個親切大哥,在場上人也很有趣,為什麼要表演這種吵死人的音樂呢?

演出時間據說有 90 分鐘,無安可過程,直接上 Hammer Smashed Face,回家路上都是鐵鎚鎚臉的聲響。