文章目录
-
- [0. 概述](#0. 概述)
- [1. 完整Vim配置](#1. 完整Vim配置)
- [2. Vim配置方案解释](#2. Vim配置方案解释)
-
- [2.1 状态行与配色方案](#2.1 状态行与配色方案)
- [2.2 文件管理与缓存设置](#2.2 文件管理与缓存设置)
- [2.3 搜索与导航优化](#2.3 搜索与导航优化)
- [2.4 缩进与格式化设置](#2.4 缩进与格式化设置)
- [2.5 粘贴模式快捷切换](#2.5 粘贴模式快捷切换)
- [2.6 文件编码与格式](#2.6 文件编码与格式)
- [2.7 性能优化](#2.7 性能优化)
- [3. 安装 Oh My Zsh 及配置](#3. 安装 Oh My Zsh 及配置)
-
- [3.1 安装 Oh My Zsh](#3.1 安装 Oh My Zsh)
- [3.2 Oh My Zsh 配置](#3.2 Oh My Zsh 配置)
- [3. Terminator终端工具](#3. Terminator终端工具)
0. 概述
本文将分享一套Linux环境下的配置方案。鉴于我在代码编写时较少使用Vim,因此所提供的Vim配置较为精简,主要包括状态行设置、缩进与格式化规则,以及基本的文件管理功能。此外,文中还将介绍Oh My Zsh和Terminator的一些基础配置。
完整配置见my_linux_config
1. 完整Vim配置
bash
" 状态行颜色
highlight StatusLine guifg=SlateBlue guibg=Yellow
" 不要生成swap文件,当buffer被丢弃的时候隐藏它
setlocal noswapfile
set bufhidden=hide
" 不让vim发出讨厌的滴滴声
set noerrorbells
" 在搜索的时候忽略大小写
set ignorecase
set smartcase
" 光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3
" 不要闪烁
set novisualbell
" 我的状态行显示的内容(包括文件类型和解码)
set statusline=%F%m%r%h%w\ [POS=%l,%v]
" 总是显示状态行
set laststatus=2
" 自动格式化
set formatoptions=tcrqn
" 继承前一行的缩进方式,特别适用于多行注释
set autoindent
" 为C程序提供自动缩进
set smartindent
" 使用C样式的缩进
set cindent
" 制表符为4
set tabstop=4
" 统一缩进为4
set softtabstop=4
set shiftwidth=4
" 4空格替代tab
set expandtab
" 不要换行
set nowrap
" 粘贴模式切换
inoremap <F3> <C-O>:set paste<CR>
inoremap <F5> <C-O>:set nopaste<CR>
" 显示行号
set nu
" F2键切换行号显示和隐藏
nnoremap <F2> :set nu!<CR>
" 允许使用sudo保存文件
cmap w! w !sudo tee > /dev/null %
" 忽略文件类型
set wildignore=.svn,.git,*.swp,*.bak,*~,*.o,*.a
" 自动保存和读取
set autowrite
set autoread
set hidden
" 光标高亮
set cursorline
" 历史记录
set history=100
" 编码设置
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
set fileencodings=gb2312,utf-8,gbk
set fileformat=unix
" 语法高亮
syntax on
set t_Co=256
" 配色方案
colorscheme monokai
" 显示特殊字符
setlocal list
set listchars=tab:>~,trail:.
" 文件类型检测
filetype plugin indent on
" 性能优化
set lazyredraw
set synmaxcol=200
" 禁用兼容模式
set nocompatible
如下为效果图:
2. Vim配置方案解释
2.1 状态行与配色方案
以下设置可以自定义状态行的前景色和背景色,使得状态行信息更加醒目:
vim
highlight StatusLine guifg=SlateBlue guibg=Yellow
同时,选择 Monokai
作为配色方案,并设置背景为暗色调:
vim
colorscheme monokai
set background=dark
Monokai
作为配色方案下载地址:vim-monokai
2.2 文件管理与缓存设置
为了避免不必要的性能开销和数据丢失,可以禁用 swap 文件并在 buffer 被丢弃时自动隐藏:
vim
setlocal noswapfile
set bufhidden=hide
另外,禁用错误提示音以减少编辑过程中的干扰:
vim
set noerrorbells
2.3 搜索与导航优化
设置忽略大小写的搜索,但当搜索字符串中包含大写字母时,自动区分大小写:
vim
set ignorecase
set smartcase
此外,为了保持更好的可读性,光标在移动到文件顶部和底部时将保持三行距离:
vim
set scrolloff=3
2.4 缩进与格式化设置
良好的缩进和格式化有助于保持代码的一致性。以下配置适用于大多数编程场景:
vim
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set autoindent
set smartindent
set cindent
配置 formatoptions
可以更好地控制自动格式化行为:
vim
set formatoptions=tcrqn
2.5 粘贴模式快捷切换
在粘贴外部内容时,避免自动缩进带来的干扰。以下配置允许通过快捷键切换粘贴模式:
vim
inoremap <F3> <C-O>:set paste<CR>
inoremap <F5> <C-O>:set nopaste<CR>
2.6 文件编码与格式
为了确保文件在不同平台之间的兼容性,建议统一使用 UTF-8 编码,同时支持中文编码格式:
vim
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
set fileencodings=gb2312,utf-8,gbk
set fileformat=unix
2.7 性能优化
在处理大型文件时,通过禁用某些功能可以提高 Vim 的响应速度:
vim
set lazyredraw
set synmaxcol=200
3. 安装 Oh My Zsh 及配置
Oh My Zsh 是一个基于 Zsh(Z Shell)的开源框架,旨在简化 Zsh 的配置并为用户提供丰富的功能和插件支持。
3.1 安装 Oh My Zsh
bash
sudo apt install zsh -y
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
3.2 Oh My Zsh 配置
以下是 ~/.zshrc
配置内容:
bash
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="alanpeabody"
plugins=(git history zsh-autosuggestions zsh-syntax-highlighting)
source $ZSH/oh-my-zsh.sh
配置解释
-
主题配置
bashZSH_THEME="alanpeabody"
本人选用 alanpeabody
主题,原因是这个与系统默认的有点类似
-
插件配置
bashplugins=(git history zsh-autosuggestions zsh-syntax-highlighting)
- git:提供一系列 Git 命令的简化和快捷方式。
- history:增强 Zsh 的历史记录功能,使其更易于管理和搜索命令历史。
- zsh-autosuggestions:基于用户的历史命令,自动建议补全内容。
- zsh-syntax-highlighting:为命令行输入提供语法高亮,便于识别错误和区分命令与参数。
效果如下:
3. Terminator终端工具
Terminator 的主要特点是支持终端窗口的分割,使用户能够在同一个窗口中同时管理多个终端会话。
可以通过以下命令安装:
bash
sudo apt-get install terminator
安装完成后,本人习惯做如下配置。
bash
[global_config]
title_hide_sizetext = True
inactive_color_offset = 0.9
title_use_system_font = False
title_font = Ubuntu 14
[keybindings]
switch_to_tab_1 = <Alt>1
switch_to_tab_2 = <Alt>2
switch_to_tab_3 = <Alt>3
switch_to_tab_4 = <Alt>4
switch_to_tab_5 = <Alt>5
[profiles]
[[default]]
cursor_color = "#aaaaaa"
foreground_color = "#ffffff"
scrollback_lines = 5000
[layouts]
[[default]]
[[[window0]]]
type = Window
parent = ""
size = 1000x800
[[[child1]]]
type = Terminal
parent = window0
[[[child2]]]
type = Terminal
parent = window0
order = 1
配置解释:
-
[global_config]
title_hide_sizetext = True
: 隐藏窗口标题栏中的尺寸信息,简化界面。inactive_color_offset = 0.9
: 调整非活动窗口的颜色,使其比活动窗口稍微暗一些,以便更好地区分窗口状态。title_use_system_font = False
: 禁用系统默认字体,使用自定义字体。title_font = Ubuntu 14
: 设置窗口标题栏的字体为Ubuntu,大小为14。
-
[keybindings]
- 这些键绑定设置为用户提供了一种快捷方式来在不同的标签页之间切换。
<Alt>1
切换到第一个标签页。<Alt>2
切换到第二个标签页,依此类推。
- 这些键绑定设置为用户提供了一种快捷方式来在不同的标签页之间切换。
-
[profiles]
cursor_color = "#aaaaaa"
: 设置光标颜色为灰色。foreground_color = "#ffffff"
: 设置文本颜色为白色。scrollback_lines = 5000
: 设置终端滚动历史记录的最大行数为5000行,便于查看更多的输出历史。
-
[layouts]
[[[window0]]]
: 定义了一个窗口,大小为1000x800。[[[child1]]]
和[[[child2]]]
: 定义了两个终端窗口,它们都是window0
的子元素。child2
在布局中排在child1
之后。
效果如下: