0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GNU Globalのインストール手順のメモ(root権限無し, Pygmentsパーサ+vimプラグイン)

Last updated at Posted at 2022-05-14

この記事はGNU Globalのインストール手順のメモです。

  • 版数:

    • GNU Global 6.6.8
    • Pygments 2.2.0
  • 環境

    • vim 8.0 (2016 Sep 12, compiled Jan 20 2022 02:47:53)
    • Ubuntu 18.04.6 LTS (Bionic Beaver)
    • root権限なし(sudo不可)
    • プロキシ下

手順

Pygmentsパーサのインストール

pip install --proxy ${HTTP_PROXY} --user Pygments

GNU Globalのインストール

ビルド

cd /tmp/
wget https://ftp.gnu.org/pub/gnu/global/global-6.6.8.tar.gz
tar axf global-6.6.8.tar.gz
cd global-6.6.8/
./configure --prefix=${HOME}/.local/global
make -j $(nproc)
make install
  • ${HOME}/.local/globalは一例です。好きな場所を指定してください。

global,gtagsコマンドのパスを通す

mkdir -p ${HOME}/.local/bin/
cd ${HOME}/.local/bin/
export PATH=${PATH}:${HOME}/.local/bin/

ln -sf ${HOME}/.local/global/bin/global ./global
ln -sf ${HOME}/.local/global/bin/gtags  ./gtags
  • ${HOME}/.local/bin/は一例です。好きな場所を指定してください。
  • ${HOME}/.local/globalビルドで指定したディレクトリに倣ってください。
  • export PATH=${PATH}:${HOME}/.local/bin/${HOME}/.bash_profileにも追記しておくのが通例です。

動作確認

  • global --versiongtags --versionを実行した結果が以下のようになればOKです。
$ global --version
global (Global) 6.6.8
Powered by Berkeley DB 1.85.
Copyright (c) 1996-2021 Tama Communications Corporation
License GPLv3+: GNU GPL version 3 or later <http://www.gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ gtags --version
gtags (Global) 6.6.8
Powered by Berkeley DB 1.85.
Copyright (c) 1996-2021 Tama Communications Corporation
License GPLv3+: GNU GPL version 3 or later <http://www.gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$

デフォルトのパーサをpygmentsに変更

cp ${HOME}/.local/global/share/gtags/gtags.conf ${HOME}/.globalrc
vim ${HOME}/.globalrc
  • ${HOME}/.local/globalビルドで指定したディレクトリに倣ってください。
  • vim ${HOME}/.globalrcで以下のように編集してください。
# Please refer to gtags.conf(5) for details.
#
default:\
        :tc=native:

# Please refer to gtags.conf(5) for details.
#
default:\
        :tc=pygments:
  • GNU Globalの対応言語はデフォルトでは5種類(C, Yacc, Java, PHP4 and assembly)ですが、上記を行うことで、C#,Python,Ruby,Fortran,Perl,Verilogなどにも対応できます。

vimの設定

vimプラグインの導入

mkdir -p ~/.vim/plugin
cp -f ${INSTALL_DIR}/share/gtags/gtags.vim ~/.vim/plugin/

キーバインドの設定

cat << EOF >> ${HOME}/.vimrc

"// -- GNU Global ----
"   Ctrl + h カレントバッファのオブジェクト一覧をvimのquickfixウィンドウに表示
"   Ctrl + n quickfixウィンドウの一覧の次候補へ移動
"   Ctrl + p quickfixウィンドウの一覧の前候補へ移動
"   Ctrl + m 関数の定義<->参照 相互ジャンプ
"   Ctrl + u 関数の参照にジャンプ
"   Ctrl + g カーソル下のkeywordでgrep
"   Ctrl + k 続けてkeywordを入力しgrep
"   Ctrl + o ジャンプ元に戻る
map <C-h> :Gtags -f %<CR>
map <C-n> :cn<CR>
map <C-p> :cp<CR>
map <C-m> :GtagsCursor<CR>
map <C-u> :Gtags -r <C-r><C-w><CR>
map <C-g> :Gtags -g <C-r><C-w><CR>
map <C-k> :Gtags -g 
EOF

動作確認

一例として、今回インストールしたGNU Globalのソースコードを題材に動作確認します。

タグの生成

cd /tmp/global-6.6.8/
gtags
  • GPATH, GTAGS, GRTAGSというファイルが生成されるはずです。
$ ls -t
★GRTAGS★    globash         libparser   config.h      gtags.conf     configure      head.in      Doxyfile.in  README.PATCHES     geco.rc           vim74-gtags-cscope.patch  depcomp
★GPATH★     htags           libutil     script        Makefile       aclocal.m4     AUTHORS      FAQ          acinclude.m4       gtags-cscope.vim  ltmain.sh                 install-sh
★GTAGS★     gtags           libglibc    doc           config.status  BUILD_TOOLS    COPYING      LICENSE      configure.ac       gtags.pl          INSTALL                   missing
global        gozilla         config.log  htags-server  m4             THANKS         COPYING.LIB  Makefile.am  convert.pl         gtags.vim         compile
libdb         plugin-factory  libtool     htags-refkit  Makefile.in    gtags.conf.in  ChangeLog    NEWS         elvis-2.2_0.patch  mainpage.dox      config.guess
gtags-cscope  libltdl         stamp-h1    Doxyfile      config-h.in    gtags.el       DONORS       README       elvis.rc           reconf.sh         config.sub
$

vimで動作確認

  • 一例として./global/global.cをvimで開いてみます。
vim ./global/global.c
# vimで./global/global.cを開けたら、Ctrl + hを押下
  • 下記のような画面が表示されればOKです。
  • Screenshot from 2022-05-15 03-55-19.png

参考にさせていただいたWebページ

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?