風で飛んでいくチラ裏

気ままに雑記メモ書き殴り。古い記事は別blogからの引っ越しなのでレイアウトがアレです。

Vimでgolangのシンタックスハイライト

VimでGoのコードを書くときにやっておきたいこと - Quiita http://qiita.com/methane/items/d82b9f28b97b5c3bd08a Ubuntuの場合、$GOROOT/misc/vim/readme.txt の最初に書いてあるとおり、 一旦filetypeを切らないとうまく動かない。

To use all the Vim plugins, add these lines to your $HOME/.vimrc. " Some Linux distributions set filetype in /etc/vimrc. " Clear filetype flags before changing runtimepath to force Vim to reload them.

ということで、.vimrcには以下のように設定する。
  filetype off
  filetype plugin indent off
  set runtimepath+=$GOROOT/misc/vim
  filetype plugin indent on
  syntax on

Vimの環境構築

Vimの環境構築です。現在絶賛構築途中。 ■目標 Windows 7Ubuntu 12.04、Debian 7 で、できるだけ同じような環境構築がしたい エディタはVim、言語はC、python, (golang) CUIオンリーとかにはこだわらない ■やったことをざっくりまとめ 今後ちょこちょこ修正していきます。 NeoBundle入れて、プラグインをガツガツ入れて、.vimrc, .gvimrcをいじり倒して、 複数環境で共有できるようにgithubにdotfiles保管場所を作る。 各環境ごとにしなければならない作業は手順をまとめる。 ・vimprocのビルド  - win7の場合はmingw-gccが必要 ・vim-airline用にpowerlineのフォントパッチを作る (未) ・(win7)フォントリンク  - Inconsolata(or Consolas)とメイリオをリンクした  - Vimだけに限定するなら guifont と guifontwide と ambiwidth を適切に設定すればOK   他のターミナルソフトとかで日本語表示をゴニョゴニョしたい場合はフォントリンク推奨 ・(Linux)Rictyを作ってインストールする ・ctags日本語対応版を入れる ■参考リンク集 IT戦記 - Windows7 搭載マシンを買ってきてやったことまとめ http://d.hatena.ne.jp/amachang/20111226/1324874731 ( ꒪⌓꒪) ゆるよろ日記 - iTerm2 + zsh + tmux + vim で快適な256色ターミナル環境を構築する http://yuroyoro.hatenablog.com/entry/20120211/1328930819 Vimの極め方 http://whileimautomaton.net/2008/08/vimworkshop3-kana-presentation

Ubuntu12.04での環境構築

最近になってやっとLinuxを開発に使うことが増えてきたので、 環境構築の記録をメモしていこうと思います。

ディストリビューションはDebian7かUbuntu12.04のどちらかにしようと思って、 とりあえずこのページはUbuntuの設定。

Linux初心者ですので、これからちょくちょく変更したり説明が間違ってたり するかもしれませんのでご注意あそばせ。

まずOSを入れたら、必要なツールを入れていきます。 Ubuntuソフトウェアセンターからインストール。

chromium

 - ブラウザ。chromeみたいなもの。

・mozc

 - Google日本語入力オープンソース

rapidsvn

 - GUISVNクライアント。TortoiseSVNには遠く及ばないが、とりあえず…

subversion

 - CUISVNクライアント

・git

・tig

 - CUIでgitのログが見れる

vim-gnome

 - gvim

・byobu

 - tmuxの皮。ターミナルのセッション管理とか、マルチウィンドウチックに

・ipython

 - インタラクティブpython。まだ使ってない

golang

 - 最近goやってるので

zsh

 - すんばらしいシェル。まだ設定を試行錯誤中。

=== これから ===

Vimの環境構築をする

zshの設定をする

Linuxで気持ちいい開発をできるように色々設定していく

text/templateで配列の配列をもつ構造体の配列をもつ構造体を表示したい場合

golangで text/template を使用して文字を出力する場合で 渡すオブジェクトに、オブジェクトの配列(スライス)が含まれていて、 かつそのオブジェクト内にも配列(スライス)が含まれていた場合の表示方法。

文字で書くとわけわかめだがこんなの。

type piyo struct {
    Array    [4][4]int
}

type hoge struct {
    piyos    [4]piyo
}

hoge.piyos[0].Array[0][0] にアクセスする場合の テンプレート側の書き方は、templateにhogeを渡したとして、

{{with index .piyos 0}}{{index .Array 0 0}}{{end}}

です。
HTML出力にtemplateを使用する場合は html/template を使いましょう。

なんというか、言語内は素晴らしく直感的なのに、 なんでこういうところがあまり直感的に見えないフォーマットなんだろう…。

参考

Vim + SCons

Vimでは、:make とコマンドを打つと、makeコマンドを実行して 結果をQuickfixに出してくれる機能があります。 # エラー箇所へジャンプする機能はもちろんコミコミ で、makeの代わりにSConsをビルドツールとして使っている場合、 どうすれば?と思ったら2行で回答が。 http://stackoverflow.com/questions/1767533/how-to-set-make-to-use-scons

:set makeprg=scons

すばらですね。