vimのタイプ
vimには以下の5つのタイプがあります。
- tiny
- small
- normal
- big
- huge
今あなたがお使いのvimがどのタイプなのかはvi --version
またはvim --version
で確認する事ができます。
実行した時の5行目の最初のワードがタイプです。
以下の場合はSmallになります。
$ vi --version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Feb 09 2023 00:00:00)
Included patches: 1-2637
Modified by <bugzilla@redhat.com>
Compiled by <bugzilla@redhat.com>
Small version without GUI. Features included (+) or not (-):
+acl -farsi +mouse_sgr -tag_old_static
-arabic -file_in_path -mouse_sysmouse -tag_any_white
+autocmd -find_in_path -mouse_urxvt -tcl
-autochdir -float +mouse_xterm -termguicolors
-autoservername -folding +multi_byte -terminal
-balloon_eval -footer -multi_lang +terminfo
-balloon_eval_term +fork() -mzscheme +termresponse
-browse -gettext -netbeans_intg -textobjects
+builtin_terms -hangul_input +num64 -textprop
-byte_offset +iconv -packages -timers
-channel +insert_expand -path_extra -title
-cindent -ipv6 -perl -toolbar
-clientserver -job -persistent_undo +user_commands
-clipboard +jumplist -popupwin -vartabs
+cmdline_compl -keymap -printer +vertsplit
+cmdline_hist -lambda -profile +virtualedit
-cmdline_info -langmap -python +visual
+comments -libcall -python3 +visualextra
-conceal -linebreak -quickfix -viminfo
-cryptv -lispindent -reltime +vreplace
-cscope +listcmds -rightleft +wildignore
+cursorbind +localmap -ruby -wildmenu
-cursorshape -lua +scrollbind +windows
-dialog -menu -signs +writebackup
-diff -mksession -smartindent -X11
-digraphs +modify_fname -sound -xfontset
-dnd +mouse -spell -xim
-ebcdic -mouseshape -startuptime -xpm
-emacs_tags -mouse_dec -statusline -xsmp
-eval -mouse_gpm -sun_workshop -xterm_clipboard
+ex_extra -mouse_jsbterm -syntax -xterm_save
-extra_search -mouse_netterm +tag_binary
system vimrc file: "/etc/virc"
user vimrc file: "$HOME/.virc"
2nd user vimrc file: "~/.vim/virc"
user exrc file: "$HOME/.exrc"
defaults file: "$VIMRUNTIME/defaults.vim"
fall-back for $VIM: "/etc"
f-b for $VIMRUNTIME: "/usr/share/vim/vim82"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -L/usr/local/lib -Wl,--as-needed -o vim -lm -lselinux -lncurses -lacl -lattr
AlmaLinuxでのvimのタイプ
AlmaLinuxでは、vim-minimal
とvim-enhanced
のパッケージが提供されていて、vim-minimal
はsmall、vim-enhanced
はhugeになります。
$ dnf search vim
メタデータの期限切れの最終確認: 17 days, 23:40:10 前の 2024年05月16日 08時58分22秒 に実施しました。
=============================================================== 名前 & 概要 一致: vim ================================================================
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System - GVim
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements
vim-filesystem.noarch : VIM filesystem layout
vim-minimal.x86_64 : A minimal version of the VIM editor
vim-minimal
は標準でインストールされていて、vim-enhanced
はappstreamリポジトリで提供されています。
なお、各パッケージが提供するのは以下の機能です。
パッケージ名 | 機能 |
---|---|
vim-X11 | vimのGUI版を提供します |
vim-common | vimが依存する共通ファイルを提供します |
vim-enhanced | vim-minimalを拡張する様々な機能を提供します |
vim-filesystem | vimプラグインの管理等の機能を提供します |
vim-minimal | vimの最小限の機能を提供します |
タイプによる違い
このタイプによって異なるのはvimが提供する機能です。
※前項で記載した、パッケージが提供する機能ではなく、vimが提供する機能です。
以下はhugeでvim --version
を実行した結果です。
コマンドの結果にも書いてありますが、+が提供している機能で、-が提供していない機能です。
$ vim --version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Feb 09 2023 00:00:00)
Included patches: 1-2637
Modified by <bugzilla@redhat.com>
Compiled by <bugzilla@redhat.com>
Huge version without GUI. Features included (+) or not (-):
+acl -farsi +mouse_sgr +tag_binary
+arabic +file_in_path -mouse_sysmouse -tag_old_static
+autocmd +find_in_path +mouse_urxvt -tag_any_white
+autochdir +float +mouse_xterm -tcl
-autoservername +folding +multi_byte +termguicolors
-balloon_eval -footer +multi_lang +terminal
+balloon_eval_term +fork() -mzscheme +terminfo
-browse +gettext +netbeans_intg +termresponse
++builtin_terms -hangul_input +num64 +textobjects
+byte_offset +iconv +packages +textprop
+channel +insert_expand +path_extra +timers
+cindent +ipv6 +perl/dyn +title
-clientserver +job +persistent_undo -toolbar
-clipboard +jumplist +popupwin +user_commands
+cmdline_compl +keymap +postscript +vartabs
+cmdline_hist +lambda +printer +vertsplit
+cmdline_info +langmap +profile +virtualedit
+comments +libcall -python +visual
+conceal +linebreak +python3/dyn +visualextra
+cryptv +lispindent +quickfix +viminfo
+cscope +listcmds +reltime +vreplace
+cursorbind +localmap +rightleft +wildignore
+cursorshape +lua/dyn +ruby/dyn +wildmenu
+dialog_con +menu +scrollbind +windows
+diff +mksession +signs +writebackup
+digraphs +modify_fname +smartindent -X11
-dnd +mouse -sound -xfontset
-ebcdic -mouseshape +spell -xim
+emacs_tags +mouse_dec +startuptime -xpm
+eval +mouse_gpm +statusline -xsmp
+ex_extra -mouse_jsbterm -sun_workshop -xterm_clipboard
+extra_search +mouse_netterm +syntax -xterm_save
system vimrc file: "/etc/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: "/etc"
f-b for $VIMRUNTIME: "/usr/share/vim/vim82"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -L. -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed -Wl,--enable-new-dtags -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -L/usr/local/lib -Wl,--as-needed -o vim -lm -lselinux -lncurses -lacl -lattr -lgpm -Wl,--enable-new-dtags -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fstack-protector-strong -L/usr/local/lib -L/usr/lib64/perl5/CORE -lperl -lpthread -lresolv -ldl -lm -lcrypt -lutil -lc
このタイプの違いは、パッケージをビルドした時のオプションで決まります。
具体的には以下のような指定になります。詳しく知りたい人はこの辺を調べてみてください。
./configure --with-features=huge
実際にタイプの差でどの機能が有効になるのかは、上記で記載したvi --version
またはvim --version
コマンドの結果を見るか、ソースコードのfeature.h
を見る事で分かります。
参考