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 之后。

效果如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/52065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vscode +STM32 VS CODE EXTENSION

stm32 vs code extersion 1.0.0版本可以直接导入cubeide的工程&#xff0c;之后版本不可以&#xff0c;所以为了省事&#xff0c;使用stm32 vs code extersion 1.0.0插件。 安装完stm32 vs code extersion插件&#xff0c;会默认把相关插件一起安装。但是需要手动安装Ninja&am…

交叉编译概念

交叉编译概念 目录 交叉编译概念1. 什么是交叉编译2. 交叉编译的作用3. 交叉编译器4. 交叉编译工具链5. 交叉编译的一般步骤6. 交叉编译实例 1. 什么是交叉编译 交叉编译是指在一个平台上编译代码&#xff0c;使其能够在另一个不同的平台上运行的过程。这种编译方式通常用于开…

Android12——Launcher3文件夹布局修改调整

文章声明&#xff1a;本文是笔者参考良心大佬作品后结合实际需求进行相应的定制&#xff0c;本篇主要是笔者记录一次解析bug笔记&#xff0c;文中可能会引用大佬文章中的部分图片在此声明&#xff0c;并非盈利目的&#xff0c;如涉嫌侵权请私信&#xff0c;谢谢&#xff01; 大…

什么是函数调用约定?

目录 前言 一、函数调用约定的主要内容 二、常见的函数调用约定 1. __cdecl&#xff08;C Declaration&#xff09; 2. __stdcall&#xff08;Standard Call&#xff09; 3. __fastcall&#xff08;Fast Call&#xff09; 4. __thiscall&#xff08;This Call&#xff0…

[数据集][目标检测]轮胎检测数据集VOC+YOLO格式4629张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;4629 标注数量(xml文件个数)&#xff1a;4629 标注数量(txt文件个数)&#xff1a;4629 标注…

【SQL】删除表中重复数据的方法

很久之前我写入一张sql的数据表&#xff0c;它里面有很多重复的内容。然后我想只保留一条原始数据&#xff1a; 例如上面的时间&#xff0c;出现了很多重复值。 我最初用的是这种方法&#xff1a; SELECT * FROM table_name WHERE primary_key IN (SELECT max(primary_key)F…

仕考网:公务员笔试和面试哪个难?

公务员笔试和面试哪个难?二者之间考察的方向不同&#xff0c;难度也是不同的。 笔试部分因其广泛的知识点和有限的考试时间显得难度更高一些&#xff0c;在笔试环节中&#xff0c;考生需在有限的时间内应对各种问题&#xff0c;而且同时还要面对激烈的竞争&#xff0c;在众多…

栈栈栈专题

一、基础 Leetcode 3174. 清除数字 class Solution { public:string clearDigits(string s) {string st; // 用string模拟栈的行为for(auto& v: s){if(isdigit(v)) st.pop_back();else st v;}return st;} }; 二、进阶 三、邻项消除 四、合法括号字符串 五、…

50Kg大载重长航时油电混动多旋翼无人机技术详解

50Kg大载重长航时油电混动多旋翼无人机技术是一项高度复杂且前沿的研究领域&#xff0c;它结合了燃油发动机的高能量密度和电动机的高效性&#xff0c;旨在提高无人机的续航能力和载重能力。以下是对该技术的详细解析&#xff1a; 产品轴距&#xff1a;2320mm 产品尺寸&#x…

Django+Vue家居全屋定制系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质创作者&…

今年读过最绝的大模型神书死磕这本大模型神书!看完直接脱胎换骨!!

书名&#x1f4d6;&#xff1a;《大语言模型&#xff1a;基础与前沿》 该书深入阐述了大语言模型&#xff08;Large Language Model, LLM&#xff09;的基本概念和算法、研究前沿以及应用&#xff0c;内容全面且系统性强&#xff0c;适合&#x1f468;&#x1f3fb;‍&#x1…

【Python系列】FastApi发送Post请求

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

安装 Let‘s Encrypt certbot 生成多个域名免费 https 证书实录(linux pip 方式)

本文记录了我在华为云 EulerOS linux 云主机使用 python pip 方式安装配置 Let’s Encrypt certbot, 并为我的网站的多个域名生成免费 https 证书的整个过程, 包括 python 环境配置, 下载 certbot 及 certbot-nginx, 一次性生成多个域名的证书及注意事项, 以及最后配置 certbot…

k8s配置

一、前期准备 1、修改主机的/etc/hosts文件挟持域名 [rootk8s-master ~]# vim /etc/hosts 192.168.8.199 k8s-master 192.168.8.200 k8s-node1 192.168.8.201 k8s-node2 2、配置yum源 [rootk8s-master ~]# cd /etc/yum.repos.d/ [rootk8s-master yum.repos.d]# vim kubernetes…

软考高项(十八)项目绩效域 ★重点集萃★

&#x1f451; 个人主页 &#x1f451; &#xff1a;&#x1f61c;&#x1f61c;&#x1f61c;Fish_Vast&#x1f61c;&#x1f61c;&#x1f61c; &#x1f41d; 个人格言 &#x1f41d; &#xff1a;&#x1f9d0;&#x1f9d0;&#x1f9d0;说到做到&#xff0c;言出必行&am…

CRIO与Windows下LabVIEW开发对比

LabVIEW在CRIO和Windows平台上开发时&#xff0c;尽管同属于一个编程环境&#xff0c;但在硬件架构、实时性能、模块化设计等方面存在显著差异。CRIO系统通常应用于工业自动化和嵌入式控制&#xff0c;具有实时操作系统支持和强大的I/O扩展能力&#xff1b;而Windows系统则更适…

网络编程 0904作业

作业 1、多进程多线程并发服务器&#xff0c;再实现一遍&#xff08;重点模型&#xff09; 多进程并发服务器 多进程服务器 PIDserver.c 代码 #include <myhead.h> #define SERPORT 7777 #define SERIP "192.168.19.128" #define BACKLOG 10void hande(int…

【MySQL进阶之路】数据库的操作

目录 创建数据库 字符集和校验规则 查看数据库支持的字符集 查看数据库支持的字符集校验规则 指定字符集和校验规则 在配置文件中配置 查看数据库 显示创建语句 修改数据库 删除数据库 数据库的备份和恢复 备份整个数据库 备份特定表 备份多个数据库 备份所有数据…

C++系列-STL容器之list

STL容器之list list容器的基本结构list容器的特点list容器的优点list容器的缺点 list容器的构造函数list容器的常用接口list赋值操作list大小及空否list访问list迭代器相关list增删查改push and popinsert其它 寄扬州韩绰判官 杜牧〔唐代〕 青山隐隐水迢迢&#xff0c;秋尽江南…

vant 动态查询下拉菜单(可用)

动态查询item项 <van-form submit"onSubmit" ref"formRef"><Title title"企业信息" title-line title-size"19" class"ml-[18px] mb-[18px]"></Title><van-cell-group inset class"py-[18px]&quo…