2
3

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.

Vi/VIMを最小構成でインストールした場合にあとからsyntaxハイライトを有効化する方法

Last updated at Posted at 2022-11-22

はじめに

 PC に Ubuntu Linux をインストールしてからしばらくの間、暗い背景に白文字でも違和感なくプログラミングしてたのですが、ふとカラフルじゃないことに気が付きました。
 本記事では、Vi/VIM(というか Ubuntu Linux)を最小構成でインストールした場合に、あとからSyntax Highlightを有効化する方法について共有します(構文ハイライトもしくはキーワードハイライトとも)。

結論から言うと、sudo apt install vim-asciidoc だけでOKでした。vi --version で確認したらちゃんと +syntax になっており、少なくとも *.sh*.py はカラーになりました。

なお最後に触れていますが、他に sudo apt install vim-gtk もおすすめです。Feature が +clipboard されるのでUndo/Redoに不自由を感じなくなると思います。

 通常構成であればコマンド一発なのですが、情報が見つからなかったので書き起こすついでに、構成の比較などもしてみました。なお、GUI版の話ではなくターミナル上で使う場合の話です。
 大抵の場合は通常構成でインストールすると思うので、viのコマンドで

:syntax enable

もしくは

:syntax on

を実行すればカラフルになるのですが、最小構成だとそうはなりません。

最初は「syntax という Feature が欲しい」という動機でしたが、本記事の内容は結果的に最小構成には入っていない Feature 群を大量に取り込み有効化する方法となっています。

OS環境

Ubuntu Linux 日本語 Remix を USB メモリから最小構成でインストールした環境です。

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.5 LTS
Release:	20.04
Codename:	focal

この場を借りて、整備・保守・配布等して下さっている方々に感謝いたします。

Vi/VIM の Feature 構成

最小構成の場合、VIM 8.1 が次のような状態でインストールされています。Small version without GUI かつ -syntaxとなっていますね。-はincludeされていないという意味です。

$ vi --version 
VIM - Vi IMproved 8.1 (2018 May 18, compiled Sep 19 2022 04:59:57)
Included patches: 1-2269, 3612, 3625, 3669, 3741
Modified by team+vim@tracker.debian.org
Compiled by team+vim@tracker.debian.org
Small version without GUI.  Features included (+) or not (-):
+acl               -farsi             -mouse_sysmouse    -tcl
-arabic            -file_in_path      -mouse_urxvt       -termguicolors
+autocmd           -find_in_path      +mouse_xterm       -terminal
-autochdir         -float             +multi_byte        +terminfo
-autoservername    -folding           -multi_lang        +termresponse
-balloon_eval      -footer            -mzscheme          -textobjects
-balloon_eval_term +fork()            -netbeans_intg     -textprop
-browse            -gettext           -num64             -timers
+builtin_terms     -hangul_input      -packages          -title
-byte_offset       +iconv             -path_extra        -toolbar
-channel           +insert_expand     -perl              +user_commands
-cindent           -job               -persistent_undo   -vartabs
-clientserver      +jumplist          -printer           +vertsplit
-clipboard         -keymap            -profile           +virtualedit
+cmdline_compl     -lambda            -python            +visual
+cmdline_hist      -langmap           -python3           +visualextra
-cmdline_info      -libcall           -quickfix          -viminfo
+comments          -linebreak         -reltime           +vreplace
-conceal           -lispindent        -rightleft         +wildignore
-cryptv            +listcmds          -ruby              -wildmenu
-cscope            +localmap          +scrollbind        +windows
+cursorbind        -lua               -signs             +writebackup
-cursorshape       -menu              -smartindent       -X11
-dialog            -mksession         -sound             +xfontset
-diff              +modify_fname      -spell             -xim
-digraphs          +mouse             -startuptime       -xpm
-dnd               -mouseshape        -statusline        -xsmp
-ebcdic            -mouse_dec         -sun_workshop      -xterm_clipboard
-emacs_tags        -mouse_gpm         -syntax            -xterm_save
-eval              -mouse_jsbterm     +tag_binary        
+ex_extra          -mouse_netterm     -tag_old_static    
-extra_search      +mouse_sgr         -tag_any_white     
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/build/vim-tiO2Sp/vim-8.1.2269=. -fstack-protector-strong -Wformat -Werror=format-security -DTINY_VIMRC -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1       
Linking: gcc   -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim    -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo  -lselinux -lacl -lattr -ldl    

解決策

ちゃんとした方法はあるのかもしれませんが、たぶんこうかな?という推測でやったら期待通り有効化された、というものなのであしからずご容赦ください。判断の根拠には後で触れます。

aptvim-asciidoc というパッケージをインストールします。ruby* とか javascript* とかいろいろ挙がっていますが、サイズは許容範囲内。vimも挙がっていることから、たぶん再コンパイルされるのかな(と最初は思ったけど違ったようです。後述)。

$ apt install vim-asciidoc の結果
$ sudo apt install vim-asciidoc 
[sudo] anonymous のパスワード: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  fonts-lato javascript-common libjs-jquery libruby2.7 rake ruby ruby-minitest ruby-net-telnet ruby-power-assert ruby-test-unit ruby-xmlrpc
  ruby2.7 rubygems-integration vim vim-addon-manager vim-runtime
提案パッケージ:
  apache2 | lighttpd | httpd ri ruby-dev bundler ctags vim-doc vim-scripts asciidoc-base
以下のパッケージが新たにインストールされます:
  fonts-lato javascript-common libjs-jquery libruby2.7 rake ruby ruby-minitest ruby-net-telnet ruby-power-assert ruby-test-unit ruby-xmlrpc
  ruby2.7 rubygems-integration vim vim-addon-manager vim-asciidoc vim-runtime
アップグレード: 0 個、新規インストール: 17 個、削除: 0 個、保留: 8 個。
14.0 MB のアーカイブを取得する必要があります。
この操作後に追加で 66.2 MB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 http://ubuntutym.u-toyama.ac.jp/ubuntu focal/main amd64 fonts-lato all 2.0-2 [2,698 kB]
取得:2 http://ubuntutym.u-toyama.ac.jp/ubuntu focal/main amd64 javascript-common all 11 [6,066 B]
取得:3 http://ubuntutym.u-toyama.ac.jp/ubuntu focal/main amd64 libjs-jquery all 3.3.1~dfsg-3 [329 kB]
取得:4 http://ubuntutym.u-toyama.ac.jp/ubuntu focal/main amd64 rubygems-integration all 1.16 [5,092 B]
取得:5 http://ubuntutym.u-toyama.ac.jp/ubuntu focal-updates/main amd64 ruby2.7 amd64 2.7.0-5ubuntu1.7 [95.6 kB]
取得:6 http://ubuntutym.u-toyama.ac.jp/ubuntu focal/main amd64 ruby amd64 1:2.7+1 [5,412 B]
取得:7 http://ubuntutym.u-toyama.ac.jp/ubuntu focal/main amd64 rake all 13.0.1-4 [61.6 kB]
取得:8 http://ubuntutym.u-toyama.ac.jp/ubuntu focal/main amd64 ruby-minitest all 5.13.0-1 [40.9 kB]
取得:9 http://ubuntutym.u-toyama.ac.jp/ubuntu focal/main amd64 ruby-net-telnet all 0.1.1-2 [12.6 kB]
取得:10 http://ubuntutym.u-toyama.ac.jp/ubuntu focal/main amd64 ruby-power-assert all 1.1.7-1 [11.4 kB]
取得:11 http://ubuntutym.u-toyama.ac.jp/ubuntu focal/main amd64 ruby-test-unit all 3.3.5-1 [73.2 kB]
取得:12 http://ubuntutym.u-toyama.ac.jp/ubuntu focal/main amd64 ruby-xmlrpc all 0.3.0-2 [23.8 kB]
取得:13 http://ubuntutym.u-toyama.ac.jp/ubuntu focal-updates/main amd64 libruby2.7 amd64 2.7.0-5ubuntu1.7 [3,533 kB]
取得:14 http://ubuntutym.u-toyama.ac.jp/ubuntu focal-updates/main amd64 vim-runtime all 2:8.1.2269-1ubuntu5.9 [5,873 kB]
取得:15 http://ubuntutym.u-toyama.ac.jp/ubuntu focal-updates/main amd64 vim amd64 2:8.1.2269-1ubuntu5.9 [1,238 kB]
取得:16 http://ubuntutym.u-toyama.ac.jp/ubuntu focal/universe amd64 vim-addon-manager all 0.5.10 [18.4 kB]
取得:17 http://ubuntutym.u-toyama.ac.jp/ubuntu focal/universe amd64 vim-asciidoc all 9.0.0~rc1-1 [9,692 B]
14.0 MB を 5秒 で取得しました (2,839 kB/s)
以前に未選択のパッケージ fonts-lato を選択しています。
(データベースを読み込んでいます ... 現在 171558 個のファイルとディレクトリがインストールされています。)
.../00-fonts-lato_2.0-2_all.deb を展開する準備をしています ...
fonts-lato (2.0-2) を展開しています...
以前に未選択のパッケージ javascript-common を選択しています。
.../01-javascript-common_11_all.deb を展開する準備をしています ...
javascript-common (11) を展開しています...
以前に未選択のパッケージ libjs-jquery を選択しています。
.../02-libjs-jquery_3.3.1~dfsg-3_all.deb を展開する準備をしています ...
libjs-jquery (3.3.1~dfsg-3) を展開しています...
以前に未選択のパッケージ rubygems-integration を選択しています。
.../03-rubygems-integration_1.16_all.deb を展開する準備をしています ...
rubygems-integration (1.16) を展開しています...
以前に未選択のパッケージ ruby2.7 を選択しています。
.../04-ruby2.7_2.7.0-5ubuntu1.7_amd64.deb を展開する準備をしています ...
ruby2.7 (2.7.0-5ubuntu1.7) を展開しています...
以前に未選択のパッケージ ruby を選択しています。
.../05-ruby_1%3a2.7+1_amd64.deb を展開する準備をしています ...
ruby (1:2.7+1) を展開しています...
以前に未選択のパッケージ rake を選択しています。
.../06-rake_13.0.1-4_all.deb を展開する準備をしています ...
rake (13.0.1-4) を展開しています...
以前に未選択のパッケージ ruby-minitest を選択しています。
.../07-ruby-minitest_5.13.0-1_all.deb を展開する準備をしています ...
ruby-minitest (5.13.0-1) を展開しています...
以前に未選択のパッケージ ruby-net-telnet を選択しています。
.../08-ruby-net-telnet_0.1.1-2_all.deb を展開する準備をしています ...
ruby-net-telnet (0.1.1-2) を展開しています...
以前に未選択のパッケージ ruby-power-assert を選択しています。
.../09-ruby-power-assert_1.1.7-1_all.deb を展開する準備をしています ...
ruby-power-assert (1.1.7-1) を展開しています...
以前に未選択のパッケージ ruby-test-unit を選択しています。
.../10-ruby-test-unit_3.3.5-1_all.deb を展開する準備をしています ...
ruby-test-unit (3.3.5-1) を展開しています...
以前に未選択のパッケージ ruby-xmlrpc を選択しています。
.../11-ruby-xmlrpc_0.3.0-2_all.deb を展開する準備をしています ...
ruby-xmlrpc (0.3.0-2) を展開しています...
以前に未選択のパッケージ libruby2.7:amd64 を選択しています。
.../12-libruby2.7_2.7.0-5ubuntu1.7_amd64.deb を展開する準備をしています ...
libruby2.7:amd64 (2.7.0-5ubuntu1.7) を展開しています...
以前に未選択のパッケージ vim-runtime を選択しています。
.../13-vim-runtime_2%3a8.1.2269-1ubuntu5.9_all.deb を展開する準備をしています ...
'vim-runtime による /usr/share/vim/vim81/doc/help.txt から /usr/share/vim/vim81/doc/help.txt.vim-tiny への退避 (divert)' を追加しています
'vim-runtime による /usr/share/vim/vim81/doc/tags から /usr/share/vim/vim81/doc/tags.vim-tiny への退避 (divert)' を追加しています
vim-runtime (2:8.1.2269-1ubuntu5.9) を展開しています...
以前に未選択のパッケージ vim を選択しています。
.../14-vim_2%3a8.1.2269-1ubuntu5.9_amd64.deb を展開する準備をしています ...
vim (2:8.1.2269-1ubuntu5.9) を展開しています...
以前に未選択のパッケージ vim-addon-manager を選択しています。
.../15-vim-addon-manager_0.5.10_all.deb を展開する準備をしています ...
vim-addon-manager (0.5.10) を展開しています...
以前に未選択のパッケージ vim-asciidoc を選択しています。
.../16-vim-asciidoc_9.0.0~rc1-1_all.deb を展開する準備をしています ...
vim-asciidoc (9.0.0~rc1-1) を展開しています...
javascript-common (11) を設定しています ...
fonts-lato (2.0-2) を設定しています ...
ruby-power-assert (1.1.7-1) を設定しています ...
rubygems-integration (1.16) を設定しています ...
ruby-minitest (5.13.0-1) を設定しています ...
ruby-test-unit (3.3.5-1) を設定しています ...
ruby-net-telnet (0.1.1-2) を設定しています ...
libjs-jquery (3.3.1~dfsg-3) を設定しています ...
vim-runtime (2:8.1.2269-1ubuntu5.9) を設定しています ...
ruby-xmlrpc (0.3.0-2) を設定しています ...
vim (2:8.1.2269-1ubuntu5.9) を設定しています ...
update-alternatives: /usr/bin/vim (vim) を提供するために自動モードで /usr/bin/vim.basic を使います
update-alternatives: /usr/bin/vimdiff (vimdiff) を提供するために自動モードで /usr/bin/vim.basic を使います
update-alternatives: /usr/bin/rvim (rvim) を提供するために自動モードで /usr/bin/vim.basic を使います
update-alternatives: /usr/bin/rview (rview) を提供するために自動モードで /usr/bin/vim.basic を使います
update-alternatives: /usr/bin/vi (vi) を提供するために自動モードで /usr/bin/vim.basic を使います
update-alternatives: /usr/bin/view (view) を提供するために自動モードで /usr/bin/vim.basic を使います
update-alternatives: /usr/bin/ex (ex) を提供するために自動モードで /usr/bin/vim.basic を使います
rake (13.0.1-4) を設定しています ...
libruby2.7:amd64 (2.7.0-5ubuntu1.7) を設定しています ...
ruby2.7 (2.7.0-5ubuntu1.7) を設定しています ...
ruby (1:2.7+1) を設定しています ...
vim-addon-manager (0.5.10) を設定しています ...
vim-asciidoc (9.0.0~rc1-1) を設定しています ...
fontconfig (2.13.1-2ubuntu3) のトリガを処理しています ...
libc-bin (2.31-0ubuntu9.9) のトリガを処理しています ...
man-db (2.9.1-1) のトリガを処理しています ...

提案パッケージに apache2httpd が挙がってるのが気にはなるけど、さておき先に進みます。

推測の根拠

vim-asciidoc だろうと推測した根拠を一応挙げておきます。apt searchの結果をsyntaxとviの2語で検索した結果、それらしいパッケージを選びました。

$ apt search |grep の結果
$ apt search vi |grep -B1 syntax |grep -A1 vi

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

biosyntax-vim/focal,focal 1.0.0b-1 all
--
--
  syntax tree builder and visitors generator for JavaCC
--
--
  module providing syntax sugar for DBIx::Class
--
--
libgtksourceview-3.0-common/focal,focal 3.24.11-2 all
  common files for the GTK+ syntax highlighting widget
--
libgtksourceview-3.0-dev/focal 3.24.11-2 amd64
  development files for the GTK+ syntax highlighting widget
--
libgtksourceview-3.0-doc/focal,focal 3.24.11-2 all
  documentation for the GTK+ syntax highlighting widget
--
libgtksourceview-4-common/focal,focal,now 4.6.0-1 all [インストール済み、自動]
  common files for the GTK+ syntax highlighting widget
--
libgtksourceview-4-dev/focal 4.6.0-1 amd64
  development files for the GTK+ syntax highlighting widget
--
libgtksourceview-4-doc/focal,focal 4.6.0-1 all
  documentation for the GTK+ syntax highlighting widget
--
libgtksourceview2.0-common/focal,focal 2.10.5-3 all
  common files for the GTK+ syntax highlighting widget
--
libgtksourceview2.0-dev/focal 2.10.5-3 amd64
  development files for the GTK+ syntax highlighting widget
--
libgtksourceview2.0-doc/focal,focal 2.10.5-3 all
  documentation for the GTK+ syntax highlighting widget
--
  Moose extension providing a declarative syntax
--
--
libppx-deriving-yojson-ocaml-dev/focal 3.5.1-2build2 amd64
  OCaml syntax extension for JSON serialization
--
libppx-visitors-ocaml-dev/focal 20200210-1 amd64
  OCaml syntax extension for object-oriented visitors
--
libppx-visitors-ocaml-doc/focal,focal 20200210-1 all
  Documentation of the visitors syntax extension for OCaml
--
--
vim-asciidoc/focal,focal 9.0.0~rc1-1 all
  Vim syntax highlighting files for asciidoc
--
vim-haproxy/focal-updates,focal-updates 2.0.29-0ubuntu1 all
  syntax highlighting for HAProxy configuration files
--
vim-icinga2/focal,focal 2.11.2-1ubuntu3 all
  syntax highlighting for Icinga 2 config files in VIM
--
vim-puppet/focal,focal 4~20181115+git4793b074-1 all
  syntax highlighting for puppet manifests in vim
--
--
vim-syntax-docker/focal-updates,focal-updates 20.10.12-0ubuntu2~20.04.1 all
  Docker container engine - Vim highlighting syntax files
--
vim-syntax-gtk/focal,focal 20110314-1 all
--
--
vim-vimerl-syntax/focal,focal 1.4.1+git20120509.89111c7-2 all
  Erlang syntax for Vim

(Rubyでも遊びたいなあ)

$ ruby --version
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]

vim-asciidoc インストールの結果

-syntaxだったものが+syntaxに変わりました。シェルスクリプトは :syntax onなどせずとも、即カラフルになりました。期待通り有効化されたようです。

よく見ると、インストール前は Small version without GUI だったのが Huge版 without GUI になっています。Featureという表現だったのが機能になって日本語化もより進んでいますね。

なお、コンパイル日時は変わっていないので、再コンパイルされたわけではないようです。機能が動的に追加/有効化されたということかな。

$ vi --version の結果
$ vi --version
VIM - Vi IMproved 8.1 (2018 May 18, compiled Sep 19 2022 04:59:57)
適用済パッチ: 1-2269, 3612, 3625, 3669, 3741
Modified by team+vim@tracker.debian.org
Compiled by team+vim@tracker.debian.org
Huge 版 without GUI.  機能の一覧 有効(+)/無効(-)
+acl               -farsi             -mouse_sysmouse    -tag_any_white
+arabic            +file_in_path      +mouse_urxvt       -tcl
+autocmd           +find_in_path      +mouse_xterm       +termguicolors
+autochdir         +float             +multi_byte        +terminal
-autoservername    +folding           +multi_lang        +terminfo
-balloon_eval      -footer            -mzscheme          +termresponse
+balloon_eval_term +fork()            +netbeans_intg     +textobjects
-browse            +gettext           +num64             +textprop
++builtin_terms    -hangul_input      +packages          +timers
+byte_offset       +iconv             +path_extra        +title
+channel           +insert_expand     -perl              -toolbar
+cindent           +job               +persistent_undo   +user_commands
-clientserver      +jumplist          +postscript        +vartabs
-clipboard         +keymap            +printer           +vertsplit
+cmdline_compl     +lambda            +profile           +virtualedit
+cmdline_hist      +langmap           -python            +visual
+cmdline_info      +libcall           +python3           +visualextra
+comments          +linebreak         +quickfix          +viminfo
+conceal           +lispindent        +reltime           +vreplace
+cryptv            +listcmds          +rightleft         +wildignore
+cscope            +localmap          -ruby              +wildmenu
+cursorbind        -lua               +scrollbind        +windows
+cursorshape       +menu              +signs             +writebackup
+dialog_con        +mksession         +smartindent       -X11
+diff              +modify_fname      +sound             -xfontset
+digraphs          +mouse             +spell             -xim
-dnd               -mouseshape        +startuptime       -xpm
-ebcdic            +mouse_dec         +statusline        -xsmp
+emacs_tags        +mouse_gpm         -sun_workshop      -xterm_clipboard
+eval              -mouse_jsbterm     +syntax            -xterm_save
+ex_extra          +mouse_netterm     +tag_binary        
+extra_search      +mouse_sgr         -tag_old_static    
      システム vimrc: "$VIM/vimrc"
      ユーザー vimrc: "$HOME/.vimrc"
   第2ユーザー vimrc: "~/.vim/vimrc"
       ユーザー exrc: "$HOME/.exrc"
  デフォルトファイル: "$VIMRUNTIME/defaults.vim"
       省略時の $VIM: "/usr/share/vim"
コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fdebug-prefix-map=/build/vim-tiO2Sp/vim-8.1.2269=. -fstack-protector-strong -Wformat -Werror=format-security -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1       
リンク: gcc   -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim        -lm -ltinfo -lnsl  -lselinux  -lcanberra -lacl -lattr -lgpm -ldl     -L/usr/lib/python3.8/config-3.8-x86_64-linux-gnu -lpython3.8 -lcrypt -lpthread -ldl -lutil -lm -lm      

syntax 以外も含めた Feature 一覧の比較

syntax以外のFeatureもたくさん有効化されたみたいなので比較してみた結果が下の表です。

構成も有効化状態もともに、大雑把にいうと予想通り Huge版 > Small version という包含関係のようです。正確には Huge 版だけに含まれないものもありますが、名前が似ていることから上位のFeatureなのだと思います。具体的には +builtin_termsbuiltin_termsdialog_condialog です。

Huge 版にしか含まれていないのは postscript です。学生時代にLaTeXで書いた論文を印刷するときに *.ps ファイルにコンパイルしていましたが、あれってバイナリじゃなかったのですね・・・。

Huge版 without GUI Small ver without GUI 備考
+ +builtin_terms ? diff
- X11 - X11 still excluded
+ acl + acl
+ arabic - arabic INCLUDED
+ autochdir - autochdir INCLUDED
+ autocmd + autocmd
- autoservername - autoservername still excluded
- balloon_eval - balloon_eval still excluded
+ balloon_eval_term - balloon_eval_term INCLUDED
- browse - browse still excluded
+ byte_offset - byte_offset INCLUDED
+ channel - channel INCLUDED
+ cindent - cindent INCLUDED
- clientserver - clientserver still excluded
- clipboard - clipboard still excluded
+ cmdline_compl + cmdline_compl
+ cmdline_hist + cmdline_hist
+ cmdline_info - cmdline_info INCLUDED
+ comments + comments
+ conceal - conceal INCLUDED
+ cryptv - cryptv INCLUDED
+ cscope - cscope INCLUDED
+ cursorbind + cursorbind
+ cursorshape - cursorshape INCLUDED
+ dialog_con ? diff
+ diff - diff INCLUDED
+ digraphs - digraphs INCLUDED
- dnd - dnd still excluded
- ebcdic - ebcdic still excluded
+ emacs_tags - emacs_tags INCLUDED
+ eval - eval INCLUDED
+ ex_extra + ex_extra
+ extra_search - extra_search INCLUDED
- farsi - farsi still excluded
+ file_in_path - file_in_path INCLUDED
+ find_in_path - find_in_path INCLUDED
+ float - float INCLUDED
+ folding - folding INCLUDED
- footer - footer still excluded
+ fork() + fork()
+ gettext - gettext INCLUDED
- hangul_input - hangul_input still excluded
+ iconv + iconv
+ insert_expand + insert_expand
+ job - job INCLUDED
+ jumplist + jumplist
+ keymap - keymap INCLUDED
+ lambda - lambda INCLUDED
+ langmap - langmap INCLUDED
+ libcall - libcall INCLUDED
+ linebreak - linebreak INCLUDED
+ lispindent - lispindent INCLUDED
+ listcmds + listcmds
+ localmap + localmap
- lua - lua still excluded
+ menu - menu INCLUDED
+ mksession - mksession INCLUDED
+ modify_fname + modify_fname
+ mouse + mouse
+ mouse_dec - mouse_dec INCLUDED
+ mouse_gpm - mouse_gpm INCLUDED
- mouse_jsbterm - mouse_jsbterm still excluded
+ mouse_netterm - mouse_netterm INCLUDED
+ mouse_sgr + mouse_sgr
- mouse_sysmouse - mouse_sysmouse still excluded
+ mouse_urxvt - mouse_urxvt INCLUDED
+ mouse_xterm + mouse_xterm
- mouseshape - mouseshape still excluded
+ multi_byte + multi_byte
+ multi_lang - multi_lang INCLUDED
- mzscheme - mzscheme still excluded
+ netbeans_intg - netbeans_intg INCLUDED
+ num64 - num64 INCLUDED
+ packages - packages INCLUDED
+ path_extra - path_extra INCLUDED
- perl - perl still excluded
+ persistent_undo - persistent_undo INCLUDED
+ postscript ? diff
+ printer - printer INCLUDED
+ profile - profile INCLUDED
- python - python still excluded
+ python3 - python3 INCLUDED
+ quickfix - quickfix INCLUDED
+ reltime - reltime INCLUDED
+ rightleft - rightleft INCLUDED
- ruby - ruby still excluded
+ scrollbind + scrollbind
+ signs - signs INCLUDED
+ smartindent - smartindent INCLUDED
+ sound - sound INCLUDED
+ spell - spell INCLUDED
+ startuptime - startuptime INCLUDED
+ statusline - statusline INCLUDED
- sun_workshop - sun_workshop still excluded
+ syntax - syntax INCLUDED
- tag_any_white - tag_any_white still excluded
+ tag_binary + tag_binary
- tag_old_static - tag_old_static still excluded
- tcl - tcl still excluded
+ termguicolors - termguicolors INCLUDED
+ terminal - terminal INCLUDED
+ terminfo + terminfo
+ termresponse + termresponse
+ textobjects - textobjects INCLUDED
+ textprop - textprop INCLUDED
+ timers - timers INCLUDED
+ title - title INCLUDED
- toolbar - toolbar still excluded
+ user_commands + user_commands
+ vartabs - vartabs INCLUDED
+ vertsplit + vertsplit
+ viminfo - viminfo INCLUDED
+ virtualedit + virtualedit
+ visual + visual
+ visualextra + visualextra
+ vreplace + vreplace
+ wildignore + wildignore
+ wildmenu - wildmenu INCLUDED
+ windows + windows
+ writebackup + writebackup
- xfontset + xfontset Removed
- xim - xim still excluded
- xpm - xpm still excluded
- xsmp - xsmp still excluded
- xterm_clipboard - xterm_clipboard still excluded
- xterm_save - xterm_save still excluded
? + builtin_terms diff
? - dialog diff

おわりに

シェルスクリプトだけでなく、Pythonスクリプトでも色が付きました。カラフルだとよりモチベが上がるというか、ワクワクする気がしますね。 プログラミングは楽しい!

次は+pythonなどしてみようかなと思っていましたが、よく見ると +python3 の方が今回有効になっていました。-pythonが指すのはpython2なのでしょうね。

最小構成で入れる方はあまりおられないかと思いますが、同じ状況になった人の何かお役に立てたなら幸いです。

参考(おすすめ)

$ sudo apt install vim-gtk

するともっとたくさんの Feature が有効化され便利になります。

+clipboard されるので、テキスト編集全般で Undo/Redo が不自由なくできるようになりました。1回だけのUndo/Redoでなんとかしのいでたので、助かった^^ コマンドモードも履歴が使えるようになって、個人的にはもう十分な気がします。

ちなみに、

  1. 最小構成
  2. apt install vim-asciidoc した状態 → "Before" と再定義
  3. apt install vim-gtk した状態 → "After"

とすると、 features は下表のように変わりました。見比べてみるだけでも面白いです。

vim-asciidoc と vim-gtk の Feature 差分
After Before diff
+ +builtin_terms + +builtin_terms
+ X11 - X11 INCLUDED
+ acl + acl
+ arabic + arabic
+ autochdir + autochdir
+ autocmd + autocmd
- autoservername - autoservername still excluded
+ balloon_eval - balloon_eval INCLUDED
+ balloon_eval_term + balloon_eval_term
+ browse - browse INCLUDED
+ byte_offset + byte_offset
+ channel + channel
+ cindent + cindent
+ clientserver - clientserver INCLUDED
+ clipboard - clipboard INCLUDED
+ cmdline_compl + cmdline_compl
+ cmdline_hist + cmdline_hist
+ cmdline_info + cmdline_info
+ comments + comments
+ conceal + conceal
+ cryptv + cryptv
+ cscope + cscope
+ cursorbind + cursorbind
+ cursorshape + cursorshape
+ dialog_con_gui ? diff
+ diff + diff
+ digraphs + digraphs
+ dnd - dnd INCLUDED
- ebcdic - ebcdic still excluded
+ emacs_tags + emacs_tags
+ eval + eval
+ ex_extra + ex_extra
+ extra_search + extra_search
- farsi - farsi still excluded
+ file_in_path + file_in_path
+ find_in_path + find_in_path
+ float + float
+ folding + folding
- footer - footer still excluded
+ fork() + fork()
+ gettext + gettext
- hangul_input - hangul_input still excluded
+ iconv + iconv
+ insert_expand + insert_expand
+ job + job
+ jumplist + jumplist
+ keymap + keymap
+ lambda + lambda
+ langmap + langmap
+ libcall + libcall
+ linebreak + linebreak
+ lispindent + lispindent
+ listcmds + listcmds
+ localmap + localmap
+ lua - lua INCLUDED
+ menu + menu
+ mksession + mksession
+ modify_fname + modify_fname
+ mouse + mouse
+ mouse_dec + mouse_dec
+ mouse_gpm + mouse_gpm
- mouse_jsbterm - mouse_jsbterm still excluded
+ mouse_netterm + mouse_netterm
+ mouse_sgr + mouse_sgr
- mouse_sysmouse - mouse_sysmouse still excluded
+ mouse_urxvt + mouse_urxvt
+ mouse_xterm + mouse_xterm
+ mouseshape - mouseshape INCLUDED
+ multi_byte + multi_byte
+ multi_lang + multi_lang
- mzscheme - mzscheme still excluded
+ netbeans_intg + netbeans_intg
+ num64 + num64
+ packages + packages
+ path_extra + path_extra
+ perl - perl INCLUDED
+ persistent_undo + persistent_undo
+ postscript + postscript
+ printer + printer
+ profile + profile
- python - python still excluded
+ python3 + python3
+ quickfix + quickfix
+ reltime + reltime
+ rightleft + rightleft
- ruby - ruby still excluded
+ scrollbind + scrollbind
+ signs + signs
+ smartindent + smartindent
+ sound + sound
+ spell + spell
+ startuptime + startuptime
+ statusline + statusline
- sun_workshop - sun_workshop still excluded
+ syntax + syntax
- tag_any_white - tag_any_white still excluded
+ tag_binary + tag_binary
- tag_old_static - tag_old_static still excluded
+ tcl - tcl INCLUDED
+ termguicolors + termguicolors
+ terminal + terminal
+ terminfo + terminfo
+ termresponse + termresponse
+ textobjects + textobjects
+ textprop + textprop
+ timers + timers
+ title + title
+ toolbar - toolbar INCLUDED
+ user_commands + user_commands
+ vartabs + vartabs
+ vertsplit + vertsplit
+ viminfo + viminfo
+ virtualedit + virtualedit
+ visual + visual
+ visualextra + visualextra
+ vreplace + vreplace
+ wildignore + wildignore
+ wildmenu + wildmenu
+ windows + windows
+ writebackup + writebackup
- xfontset - xfontset still excluded
+ xim - xim INCLUDED
+ xpm - xpm INCLUDED
+ xsmp_interact ? diff
+ xterm_clipboard - xterm_clipboard INCLUDED
- xterm_save - xterm_save still excluded
? + dialog_con diff
? - xsmp diff

余談

あと、apt search から grep された vim-syntax-gtkパッケージもあとで入れてみようかなと思うので、新情報があれば共有します。

ただ、面白そうなドキュメントがたくさん見つかるので時間ないかも。

2
3
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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?