Linux终端简单配置(Vim、oh-my-zsh和Terminator)
文章目录
- 0. 概述
- 1. 完整Vim配置
- 2. Vim配置方案解释
- 2.1 状态行与配色方案
- 2.2 文件管理与缓存设置
- 2.3 搜索与导航优化
- 2.4 缩进与格式化设置
- 2.5 粘贴模式快捷切换
- 2.6 文件编码与格式
- 2.7 性能优化
- 3. 安装 Oh My Zsh 及配置
- 3.1 安装 Oh My Zsh
- 3.2 Oh My Zsh 配置
- 3. Terminator终端工具
0. 概述
本文将分享一套Linux环境下的配置方案。鉴于我在代码编写时较少使用Vim,因此所提供的Vim配置较为精简,主要包括状态行设置、缩进与格式化规则,以及基本的文件管理功能。此外,文中还将介绍Oh My Zsh和Terminator的一些基础配置。
完整配置见my_linux_config
1. 完整Vim配置
" 状态行颜色
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 状态行与配色方案
以下设置可以自定义状态行的前景色和背景色,使得状态行信息更加醒目:
highlight StatusLine guifg=SlateBlue guibg=Yellow
同时,选择 Monokai 作为配色方案,并设置背景为暗色调:
colorscheme monokai
set background=dark
Monokai 作为配色方案下载地址:vim-monokai
2.2 文件管理与缓存设置
为了避免不必要的性能开销和数据丢失,可以禁用 swap 文件并在 buffer 被丢弃时自动隐藏:
setlocal noswapfile
set bufhidden=hide
另外,禁用错误提示音以减少编辑过程中的干扰:
set noerrorbells
2.3 搜索与导航优化
设置忽略大小写的搜索,但当搜索字符串中包含大写字母时,自动区分大小写:
set ignorecase
set smartcase
此外,为了保持更好的可读性,光标在移动到文件顶部和底部时将保持三行距离:
set scrolloff=3
2.4 缩进与格式化设置
良好的缩进和格式化有助于保持代码的一致性。以下配置适用于大多数编程场景:
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set autoindent
set smartindent
set cindent
配置 formatoptions 可以更好地控制自动格式化行为:
set formatoptions=tcrqn
2.5 粘贴模式快捷切换
在粘贴外部内容时,避免自动缩进带来的干扰。以下配置允许通过快捷键切换粘贴模式:
inoremap <F3> <C-O>:set paste<CR>
inoremap <F5> <C-O>:set nopaste<CR>
2.6 文件编码与格式
为了确保文件在不同平台之间的兼容性,建议统一使用 UTF-8 编码,同时支持中文编码格式:
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
set fileencodings=gb2312,utf-8,gbk
set fileformat=unix
2.7 性能优化
在处理大型文件时,通过禁用某些功能可以提高 Vim 的响应速度:
set lazyredraw
set synmaxcol=200
3. 安装 Oh My Zsh 及配置
Oh My Zsh 是一个基于 Zsh(Z Shell)的开源框架,旨在简化 Zsh 的配置并为用户提供丰富的功能和插件支持。
3.1 安装 Oh My Zsh
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 配置内容:
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="alanpeabody"
plugins=(git history zsh-autosuggestions zsh-syntax-highlighting)
source $ZSH/oh-my-zsh.sh
配置解释
-
主题配置
ZSH_THEME="alanpeabody"
本人选用 alanpeabody 主题,原因是这个与系统默认的有点类似
-
插件配置
plugins=(git history zsh-autosuggestions zsh-syntax-highlighting)- git:提供一系列 Git 命令的简化和快捷方式。
- history:增强 Zsh 的历史记录功能,使其更易于管理和搜索命令历史。
- zsh-autosuggestions:基于用户的历史命令,自动建议补全内容。
- zsh-syntax-highlighting:为命令行输入提供语法高亮,便于识别错误和区分命令与参数。
效果如下:

3. Terminator终端工具
Terminator 的主要特点是支持终端窗口的分割,使用户能够在同一个窗口中同时管理多个终端会话。
可以通过以下命令安装:
sudo apt-get install terminator
安装完成后,本人习惯做如下配置。
[global_config]title_hide_sizetext = Trueinactive_color_offset = 0.9title_use_system_font = Falsetitle_font = Ubuntu 14
[keybindings]switch_to_tab_1 = <Alt>1switch_to_tab_2 = <Alt>2switch_to_tab_3 = <Alt>3switch_to_tab_4 = <Alt>4switch_to_tab_5 = <Alt>5
[profiles][[default]]cursor_color = "#aaaaaa"foreground_color = "#ffffff"scrollback_lines = 5000
[layouts][[default]][[[window0]]]type = Windowparent = ""size = 1000x800[[[child1]]]type = Terminalparent = window0[[[child2]]]type = Terminalparent = window0order = 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之后。
效果如下:

相关文章:
Linux终端简单配置(Vim、oh-my-zsh和Terminator)
文章目录 0. 概述1. 完整Vim配置2. Vim配置方案解释2.1 状态行与配色方案2.2 文件管理与缓存设置2.3 搜索与导航优化2.4 缩进与格式化设置2.5 粘贴模式快捷切换2.6 文件编码与格式2.7 性能优化 3. 安装 Oh My Zsh 及配置3.1 安装 Oh My Zsh3.2 Oh My Zsh 配置 3. Terminator终端…...
js模块化 --- commonjs规范 原理详解
什么是commonjs规范 commonjs是一种模块化规范(nodejs的默认模块化规范,新版的nodejs已经支持es6的模块化,但它默认任然使用的是commonjs),通俗的说它将代码分割成了一个一个的模块,让不同的模块拥有自己独…...
kubeadm部署 Kubernetes(k8s) 高可用集群【V1.28 】
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。 calico.yaml kubernertes-dashboard.yaml 1. 安装要求 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 10台机器,操作系统Openeuler22.03 LTS SP4硬件配置&…...
【MySQL】MySQL Workbench下载安装、环境变量配置、基本MySQL语句、新建Connection
1.MySQL Workbench 下载安装: 进入网址:MySQL :: MySQL Workbench Manual :: 2 Installation (1)点击“MySQL Workbench on Windows”(下载Windows版本)(2)点击“Installing” &…...
CrowdStrike 的失败如何凸显了左移测试的重要性
通过自动化软件测试并将其左移,组织可以显著降低 CrowdStrike 等事件发生的风险。继续阅读,了解采用左移测试方法的强大之处。 Parasoft下载 测试中偷工减料的风险 CrowdStrike 软件更新失败是一个重要的教训,它让我们认识到早期、自动…...
HarmonyOS开发实战( Beta5版)高负载组件的渲染实践规范
简介 在应用开发中,有的页面需要在列表中加载大量的数据,就会导致组件数量较多或者嵌套层级较深,从而引起组件负载加重,绘制耗时增长。虽然可以通过组件复用避免组件重复创建,但是如果每个列表项中包含的组件较多&…...
NLP从零开始------16.文本中阶处理之序列到序列模型(1)
1. 序列到序列模型简介 序列到序列( sequence to sequence, seq2seq) 是指输入和输出各为一个序列(如一句话) 的任务。本节将输入序列称作源序列,输出序列称作目标序列。序列到序列有非常多的重要应用, 其中最有名的是机器翻译( machine translation), 机…...
【匈牙利汽车产业考察,开启新机遇】
匈牙利汽车工业发展历史悠久,拥有发达的基础设施和成熟的产业基础,全球20大汽车制造厂商中,有超过14家在匈牙利建立整车制造工厂和汽车零部件生产基地,比亚迪、宁德时代、欣旺达、蔚来等企业纷纷入驻。匈牙利位于东西方交汇处&…...
并行程序设计基础——动态进程管理
目录 一、组间通信域 二、动态创建新的MPI进程 1、MPI_COMM_SPAWN 2、MPI_COMM_GET_PARENT 3、MPI_COMM_SPAWN_MULTIPLE 三、独立进程间的通信 1、MPI_OPEN_PORT 2、MPI_COMM_ACCEPT 3、MPI_CLOSE_PORT 4、MPI_COMM_CONNECT 5、MPI_COMM_DISCONNECT 6、MPI_PUBLISH…...
C# 字符串(String)使用教程
在 C# 中,您可以使用字符数组来表示字符串,但是,更常见的做法是使用 string 关键字来声明一个字符串变量。string 关键字是 System.String 类的别名。 创建 String 对象 您可以使用以下方法之一来创建 string 对象: 通过给 Str…...
django之ForeignKey、OneToOneField 和 ManyToManyField
在Django中,ForeignKey、OneToOneField 和 ManyToManyField 是用于定义模型之间关系的字段类型。 ForeignKey ForeignKey 用于定义多对一的关系。例如,一个Employee可以属于一个Department,一个Department可以有多个Employee。 from djang…...
java.lang.IndexOutOfBoundsException: setSpan ( 0...x ) ends beyond length X
1,可能是EditText,setSelection(x)时超过了 输入框内容的实际长度导致的。 2,手机开启“拼写检查功能”,EditText设置了最大长度,选择提示的某一项文案时超过设置的最大长度限制,导致崩溃。 针对情况2 开…...
技术进展:CH-90树脂在去除硫酸钠柠檬酸钠溶液中铁锰离子上的应用
随着环境保护法规的日趋严格,以及工业生产中对产品纯度要求的不断提高,去除废水中的重金属离子已成为一个亟待解决的问题。铁和锰作为常见的杂质离子,在电池制造等行业中,对溶液纯度的影响不容忽视。 三元前驱体废水中通常含有硫…...
录屏时摄像头无法识别?如何录屏时打开摄像头,解决方案及录屏软件推荐
在数字时代,无论是游戏玩家、在线教育者还是企业培训师,录屏软件都已成为日常工作和娱乐中不可或缺的工具。但有时候想录制人物摄像头画面的时候,当录屏软件无法识别到摄像头时,这无疑会给用户带来不小的困扰。本文将提供一系列解…...
达梦数据库-DM8 企业版安装指南
一、DM8 企业版简介 达梦数据库(DM8)是中国自主研发的一款高性能数据库管理系统,广泛应用于企业级应用场景。DM8 企业版具备高可用性、强一致性和高性能等特点,支持多种操作系统和硬件平台。本文将详细介绍如何在 Kylin 操作系统上安装达梦数据库 DM8 企业版。 二、安装前…...
心脑血管科董田林医生:心律失常患者饮食,调养秘诀,助你找回健康心跳
在纷繁复杂的健康议题中,心律失常作为一种常见的心脏疾病,不仅影响着患者的生活质量,更牵动着每一个家庭的神经。幸运的是,通过科学合理的饮食调养,心律失常患者可以在很大程度上改善病情,逐步找回健康的心…...
期权杂记(一)
2024年9月5日: 切忌裸奔!如果你想暴富,押注期权还不如去澳门;做任何策略都可以多多关注希腊字母;对冲也是又方向性的,可以偏购,也可以偏沽,通过Delta Money来尝试计算;单…...
【MATLAB源码-第163期】基于matlab的BPSK+瑞利(rayleigh)信道下有无波束成形误码率对比仿真。
操作环境: MATLAB 2022a 1、算法描述 在通信系统中,波束成形(Beamforming)技术是一种广泛使用的信号处理技术,通过调整天线阵列中各个元素的相位和幅度,使得信号在特定方向上增强,在其他方向…...
【数据分享】2000-2022年我国省市县三级的逐日O3数据(免费获取\excel\shp格式)
空气质量数据是在我们日常研究中经常使用的数据!之前我们给大家分享了2000-2022年的省市县三级的逐日PM2.5数据、2013-2022年的省市县三级的逐日CO数据、2013-2022年的省市县三级的逐日SO2数据、2008-2022年我国省市县三级的逐日NO2数据和2000-2022年我国省市县三级…...
Python 的http.server库详细介绍
http.server 是 Python 标准库中的一个模块,用于创建基本的 HTTP 服务器。这个模块非常适合用于开发、测试、以及在本地网络中共享文件。以下是对 http.server 模块的详细介绍。 Python 官方文档:http.server — HTTP 服务器 模块概述 http.server 提…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...
