digraph-table

vim 编辑二进制文件时,会看到类似 ^A, ^@, ^P 等字符,这些是不可见字符,完整的对应关系可查看 digraph-table

部分常见如下:

char  digraph	hex	dec	official name
^@	NU	0x00	  0	NULL (NUL)
^A	SH	0x01	  1	START OF HEADING (SOH)
^B	SX	0x02	  2	START OF TEXT (STX)
^C	EX	0x03	  3	END OF TEXT (ETX)
^D	ET	0x04	  4	END OF TRANSMISSION (EOT)
^E	EQ	0x05	  5	ENQUIRY (ENQ)
^F	AK	0x06	  6	ACKNOWLEDGE (ACK)
^G	BL	0x07	  7	BELL (BEL)
^H	BS	0x08	  8	BACKSPACE (BS)
^I	HT	0x09	  9	CHARACTER TABULATION (HT)
^@	LF	0x0a	 10	LINE FEED (LF)
^K	VT	0x0b	 11	LINE TABULATION (VT)
^L	FF	0x0c	 12	FORM FEED (FF)
^M	CR	0x0d	 13	CARRIAGE RETURN (CR)
^N	SO	0x0e	 14	SHIFT OUT (SO)
^O	SI	0x0f	 15	SHIFT IN (SI)
^P	DL	0x10	 16	DATALINK ESCAPE (DLE)
^Q	D1	0x11	 17	DEVICE CONTROL ONE (DC1)
^R	D2	0x12	 18	DEVICE CONTROL TWO (DC2)
^S	D3	0x13	 19	DEVICE CONTROL THREE (DC3)
^T	D4	0x14	 20	DEVICE CONTROL FOUR (DC4)
^U	NK	0x15	 21	NEGATIVE ACKNOWLEDGE (NAK)
^V	SY	0x16	 22	SYNCHRONOUS IDLE (SYN)
^W	EB	0x17	 23	END OF TRANSMISSION BLOCK (ETB)
^X	CN	0x18	 24	CANCEL (CAN)
^Y	EM	0x19	 25	END OF MEDIUM (EM)
^Z	SB	0x1a	 26	SUBSTITUTE (SUB)
^[	EC	0x1b	 27	ESCAPE (ESC)
^\	FS	0x1c	 28	FILE SEPARATOR (IS4)
^]	GS	0x1d	 29	GROUP SEPARATOR (IS3)
^^	RS	0x1e	 30	RECORD SEPARATOR (IS2)
^_	US	0x1f	 31	UNIT SEPARATOR (IS1)

plugin

# 下载
curl -fsSL https://www.vim.org/scripts/download_script.php?src_id=14498 -o  AnsiEsc.vba.gz
wget -o AnsiEsc.vba.gz https://www.vim.org/scripts/download_script.php?src_id=14498

# 安装, 安装后,会将该 Vimball 中文件解压到相应目录。
vim AnsiEsc.vba.gz
:so %
:q

tree ~/.vim
ll ~/.vim/autoload/AnsiEsc.vim
ll ~/.vim/doc/AnsiEsc.txt
ll ~/.vim/plugin/AnsiEscPlugin.vim

# 使用
ls -l --color=always / > /tmp/colored.txt
vi /tmp/colored.txt
:AnsiEsc

vim-plug

# 先确保 vim 版本 >= 8.0
vim --version

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

vi ~/.vimrc
call plug#begin()
# Plug 'junegunn/seoul256.vim'
call plug#end()


#mkdir -p ~/.vim/pack/vendor/start

修改vim配置文件

修改用户级别的 需要修改 ~/.vimrc。修改全局的, 需要修改 /etc/vimrc , 或者 /etc/vim/vimrc , 或者 /etc/vim/vimrc.local(可以通过 :version 看到)

set syntax=on               " 开启:语法着色
colors desert               " 设置着色主题

set autoread                " 开启:文件被更新时自动载入
" set nobackup              " 关闭:创建备份文件
set nocompatible            " 不使用 vi 的键盘模式,而是使用 vim 的
set number                  " 开启:显示行号

"set noeb                   " 关闭:输入错误进行响铃提示

set ruler                   " 开启:显示标尺
set showcmd                 " 开启:显示输入的命令
set cursorline              " 开启:高亮显示当前行
" set magic
set fileencodings=utf-8,gbk " 设置文件编码尝试顺序

set expandtab               " 开启:用空格代替制表符
" set noexpandtab           " 关闭:用空格代替制表符
set tabstop=4               " 设置tab缩进的宽度
set shiftwidth=4            " 固定缩进的宽度
set softtabstop=4           " 固定缩进的宽度
set fileformats=unix
set hlsearch                " 高亮显示查找结果
set formatoptions-=cro

" set autoindent            " 开启:自动缩进
set noautoindent            " 关闭:自动缩进
" set smartindent           " 开启:智能对齐
set nosmartindent           " 关闭:智能对齐
set showmatch               " 高亮显示匹配的括号
set matchtime=1             " 匹配括号高亮的时间(单位是十分之一秒)

set paste                   " 开启:粘贴模式
"set nopaste                " 关闭:粘贴模式

set mouse=i                 " 开启:鼠标模式, 查看说明使用命令 `:help mouse`
                            " ""  : 默认(即关闭模式)
                            " "n" : Normal mode and Terminal modes, 不建议,否则只能光标点击确认位置,无法光标选择文本。
                            " "v" : Visual mode
                            " "i" : Insert mode    # 推荐
                            " "c" : Command-line mode
                            " "h" : all previous modes when editing a help file
                            " "a" : all previous modes
                            " "r" : for hit-enter and more-prompt prompt
"set mouse=                 " 关闭:鼠标模式

set wrap                    " 开启:换行
"set nowrap                 " 关闭:换行

set list                    " 开启:显示制表符
" comment here

主题/colorschema

ls /usr/share/vim/vim91/colors/*.vim
# vim 9.1 包含以下: (目录 vim91 是后两个数字代表其版本号)
# blue        darkblue    default     delek       desert      elflord     evening     habamax     industry    koehler     lunaperche  morning     murphy      pablo       peachpuff   quiet       retrobox    ron         shine       slate       sorbet      torte       unokai      wildcharm   zaibatsu    zellner
:colorscheme xxx     # 可以tab键显示候选值。