0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Vimのタイプ

Last updated at Posted at 2024-06-03

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を見る事で分かります。

参考

0
0
1

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?