vim与tmux配置文件及常用命令总结

一. 配置文件

1. .tmux.conf
tmux 复制代码
# 使用Ctrl+A作为前缀组合键
set -g prefix C-a
unbind C-b
bind C-a send-prefix

# 支持鼠标操作
setw -g mouse on

# 为了能够重新加载配置文件而无需重启tmux,可以绑定一个快捷键
bind r source-file ~/.tmux.conf \; display-message "Config reloaded.."

# 设置窗口和面板的默认索引号从 1 开始而不是从 0 开始
set -g base-index 1
setw -g pane-base-index 1

# 开启窗口和面板的活动监控,标记出有内容更新的面板
setw -g monitor-activity on
set -g visual-activity on

# 配置状态栏信息
set -g status-interval 5
set -g status-justify centre
set -g status-left '#[fg=green]Session: #S#[default]'
set -g status-right '#[fg=yellow]#(date "+%H:%M:%S %d-%b-%y")#[default]'

# 窗口列表的颜色设置
setw -g window-status-current-bg blue
setw -g window-status-current-fg white

# 允许256色
set -g default-terminal "screen-256color"
2. .vimrc
vimrc 复制代码
" 启用语法高亮
syntax on

" 显示行号
set number

" 启用折叠
set foldmethod=indent
set foldlevel=99

" 使用空格而不是制表符
set expandtab

" 设置Tab和自动缩进的大小
set tabstop=4
set shiftwidth=4
set softtabstop=4

" 智能缩进
set smartindent

" 让Vim在所有模式下都可以自由地使用鼠标
set mouse=a

" 启用剪贴板共享,使之能够与系统剪贴板交互
set clipboard=unnamedplus

" 搜索时高亮显示匹配
set hlsearch

" 使搜索变得更智能
set incsearch

" 忽略大小写
set ignorecase

" 在搜索中输入的大写字母会使搜索变为大小写敏感
set smartcase

" 使用24-bit(true color)颜色支持
if has('termguicolors')
    set termguicolors
endif

" 设置状态栏
set statusline=%f%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ [LEN=%L]
set laststatus=2

" 启用折行
set wrap

" 显示不可见字符
set list
set listchars=tab:>-,trail:-,nbsp:+

" 字符编码设置
set encoding=utf-8
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936

" 给新行使用当前行的缩进
set autoindent

" 实时显示输入命令
set showcmd

" 指定折叠打开时的标记
let g:foldopen_flags = 'search,insert,jump,undo'

" 允许无限次的撤销,即使在文件被保存后也能撤销之前的操作
set undofile

" 高亮当前行
set cursorline

" 取消换行空白处的光标箭头跳跃
set whichwrap+=<,>,h,l

" 设置颜色主题
colorscheme desert

" 在编辑时自动刷新文件
set autoread

" 让回退更加智能
set backspace=indent,eol,start

" 窗口换位时不要显示底部提示
set shortmess+=A

" 防止自动注释新行
autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o

" 快速退出插入模式
inoremap jj <Esc>

" 显示匹配的括号
set showmatch
set matchtime=2

" 分屏时默认位置
set splitright
set splitbelow

" 在可视模式下显示空格(作为点)
set listchars=tab:>-,trail:~,extends:>,precedes:<,nbsp:+,space:·
set list

二. 常用命令

1. vim
  1. 命令模式(Normal Mode)
    命令模式是 Vim 启动时的默认模式,可以执行大量命令来移动光标、编辑、删除、复制和粘贴文本。
  • h, j, k, l:左、下、上、右移动光标。
  • w / W:移动到下一个字(word)/单词块(WORD)的开头。
  • b / B:移动到前一个字(word)/单词块(WORD)的开头。
  • e / E:移动到下一个字(word)/单词块(WORD)的末尾。
  • $:移动到行尾。
  • 0:移动到行首。
  • ^:移动到行的第一个非空字符。
  • %:移动到匹配的括号({, }, [, ], (, ))。
  • gg:移动到文件的第一行。
  • G:移动到文件的最后一行或指定的行号(如:5G)。
  • } / {:移动到下一个/上一个段落开头。
  • dd:删除当前行。
  • D:删除光标至行尾的内容。
  • yw:复制光标所在的单词。
  • yy:复制当前行。
  • p:在当前光标之后粘贴。
  • P:在当前光标之前粘贴。
  • x:删除光标所在位置的字符。
  • r:替换光标所在位置的字符。
  • ~:切换光标所在位置字符的大小写。
  1. 插入模式(Insert Mode)
    进入插入模式可以进行文本输入,以下是进入插入模式的几种方式。
  • i:在当前光标位置变为插入模式。
  • I:在当前行首变为插入模式。
  • a:在当前光标后一个字符变为插入模式。
  • A:在当前行末变为插入模式。
  • o:在当前行下方新开一行,并变为插入模式。
  • O:在当前行上方新开一行,并变为插入模式。
  • Esc:从插入模式返回命令模式。
  1. 底行模式(Command-line Mode)
    底行模式允许你输入一行命令。通过这些命令,可以执行文件操作、设置选项、查找和替换等。
  • ::进入底行模式。

  • :w:保存文件。

  • :q:退出 Vim。

  • :wqZZ:保存文件并退出。

  • :q!:不保存并强制退出。

  • :e {file}:打开一个文件进行编辑。

  • :set nu:显示行号。

  • :set nonu:关闭行号显示。

  • :%s/old/new/g:全文件替换,"old"替换为"new"。

  • :/pattern:查找文本。

  • :noh:取消搜索高亮。

  • :!{command}:执行外部命令。

2. tmux

注意,以下命令均基于所给配置文件,默认命令前缀为Ctrl + B

  1. 会话管理
  • Ctrl+A d:从当前会话中分离,保留后台运行。
  • Ctrl+A (:切换到上一个会话。
  • Ctrl+A ):切换到下一个会话。
  • Ctrl+A $:重命名当前会话。
  • tmux new -s session_name:创建新的会话并命名。
  • tmux attach -t session_name:连接到名为 session_name 的会话。
  • tmux ls:列出所有会话。
  • tmux kill-session -t session_name:终止名为 session_name 的会话。
  1. 窗口(Window)管理
  • Ctrl+A c:创建新窗口。
  • Ctrl+A p:切换到前一个窗口。
  • Ctrl+A n:切换到下一个窗口。
  • Ctrl+A w:通过列表选择窗口。
  • Ctrl+A ,:重命名当前窗口。
  • Ctrl+A &:关闭当前窗口。
  • Ctrl+A 数字键:切换到编号为数字键的窗口。
  1. 面板(Pane)管理
  • Ctrl+A ":将当前面板水平分割。
  • Ctrl+A %:将当前面板垂直分割。
  • Ctrl+A 方向键:在不同面板间切换。
  • Ctrl+A o:循环切换到下一个面板。
  • Ctrl+A {:将当前面板左移。
  • Ctrl+A }:将当前面板右移。
  • Ctrl+A x:关闭当前面板。
  • Ctrl+A z:放大当前面板至全屏,再次按回复原大小。
  • Ctrl+A ;:切换至上次使用的面板。
  1. 其他命令
  • Ctrl+A r:重新加载配置文件。
  • Ctrl+A ::进入命令模式,可以输入更多 tmux 命令。
相关推荐
pk_xz12345643 分钟前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强1 小时前
Linux之sed命令详解
linux·运维·服务器
Lary_Rock3 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
云飞云共享云桌面5 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
励志成为嵌入式工程师5 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim
Peter_chq5 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮6 小时前
Linux 使用中的问题
linux·运维
dsywws7 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零8 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
小林熬夜学编程9 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法