はじめに
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
解決策
ちゃんとした方法はあるのかもしれませんが、たぶんこうかな?という推測でやったら期待通り有効化された、というものなのであしからずご容赦ください。判断の根拠には後で触れます。
apt
で vim-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) のトリガを処理しています ...
提案パッケージに apache2
や httpd
が挙がってるのが気にはなるけど、さておき先に進みます。
推測の根拠
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_terms
と builtin_terms
、 dialog_con
と dialog
です。
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でなんとかしのいでたので、助かった^^ コマンドモードも履歴が使えるようになって、個人的にはもう十分な気がします。
ちなみに、
- 最小構成
-
apt install vim-asciidoc
した状態 → "Before" と再定義 -
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
パッケージもあとで入れてみようかなと思うので、新情報があれば共有します。
ただ、面白そうなドキュメントがたくさん見つかるので時間ないかも。