Cygwinの個人的セットアップ(GNU Global + Pygments + Vim)

はじめに

自宅ではMacですが職場ではWindows7なのでターミナルで操作したいときはCygwinを使うようにしてます。 本エントリではCygwinをインストールする際に、まず始めに実施する個人的セットアップをまとめます。

Cygwinのインストール

以下のURLからCygwinインストーラーをダウンロードしてインストールします。 https://cygwin.com/install.html

インストールの過程では最低限以下のパッケージを選択します(あくまで個人的に必要なものです)。

  • gcc-core
  • libncurses-devel
  • make
  • python3
  • python3-pygments
  • vim
  • wget
  • git

パッケージ管理ツールの整備

Cygwinインストーラでもパッケージの管理が可能ですが、ターミナル上で利用可能なツール「apt-cyg」をインストールします。

wgetのプロキシ設定(必要な場合のみ)

/etc/wgetrc

 82 # You can set the default proxies for Wget to use for http, https, and ftp.
 83 # They will override the value in the environment.
 84 https_proxy = ...
 85 http_proxy = ...
 86 ftp_proxy = ...
 87 proxy_user = ...
 88 proxy_passwd = ...
 89
 90 # If you do not want to use proxy at all, set this to off.
 91 use_proxy = on

apt-cygのインストール

$ wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
$ chmod 755 apt-cyg
$ mv apt-cyg /usr/local/bin/

apt-cygでは次のようなコマンドでパッケージの管理ができます。

  • パッケージを検索
$ apt-cyg searchall <package_name>
  • インストール済みのパッケージを検索
$ apt-cyg search <package_name>
  • パッケージをインストール
$ apt-cyg install <package_name>

GNU Globalのインストール

以下のURLからglobal-6.6.2.tar.gz(2018/2/20現在最新)をダウンロードします。 http://www.gnu.org/software/global/download.html

Cygwin上で以下のコマンドを実行し、GNU Globalをインストールします。

$ tar xvf global-6.5.6.tar.gz
$ cd global-6.5.6
$ ./configure
$ make
$ make install

プラグインvimにインストール

$ mkdir -p ~/.vim/plugin
$ cp /usr/local/share/gtags/gtags.vim ~/.vim/plugin/gtags.vim

.vimrcにGtags用のショートカットを追加

.vimrcは後述するリポジトリから取得するため普段省略しますが、既に作成済みの.vimrcがある場合はGtags用に以下のマッピングを追加します。

~/.vimrc

map <C-g> :Gtags
map <C-h> :Gtags -f %<CR>
map <C-j> :GtagsCursor<CR>
map <C-n> :cn<CR>
map <C-p> :cp<CR>

PygmentsとGNU Globalの連携

以下のコマンドを実行します。

$ cp /usr/local/share/gtags/gtags.conf ~/.globalr

.globalrを以下の通り編集します。

~/.globalr
変更前

default:\
         :tc=native:

変更後

default:\
        :tc=native:tc=pygments:

(参考)gtagsの使用方法

解析対象のソースファイルを含むディレクトリ(最上位ディレクトリで良い)で以下のコマンドを実行することで タグファイルを作成できます。

$ gtags -v

以下のファイルが同ディレクトリに作成されていることが確認できます。
* GPATH
* GRTAGS
* GTAGS

これで、vimから変数名などにカーソルを合わせて<C-j>で参照関係を検索し、 <C-n>で次のファイルに移動、<C-p>で前のファイルに移動可能になります。

(参考)htagsの使用方法

htagsコマンドをタグファイルがあるディレクトリで実行することで、コードをWebブラウザで確認するためのhtmlファイルを出力できます (オプションは適宜変えて下さい)。

$ htags -safno -v --html-header=./encode_meta.html

日本語文字の文字化けを防ぐためにmetaタグの指定を--html-headerオプションで行います。 「./encode_meta.html」には以下の通り文字コードを指定します。

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />

ドットファイルの取得

ドットファイルはgitで管理しているのでcloneします。

必要に応じて次の通りプロキシの設定を行います。

$ git config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>
$ git config --global https.proxy https://<username>:<userpsw>@<proxy>:<port>

~/.gitconfig

[http]
        proxy = http://<username>:<userpsw>@<proxy>:<port>
[https]
        proxy = http://<username>:<userpsw>@<proxy>:<port>

続けて以下のリポジトリをcloneして、setup.shを実行します。 github.com

$ cd ~
$ git clone https://github.com/hiroki-sawano/dotfiles.git
$ sh ~/dotfiles/setup.sh