Linux终端简单配置(Vim、oh-my-zsh和Terminator)

news2024/11/27 1:33:00

文章目录

    • 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 backup
set backupdir=~/.vim/backup//
set undofile
set undodir=~/.vim/undo//

" 禁用兼容模式
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 <F4> <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

此外,为了防止意外丢失文件,建议启用自动保存和备份功能:

set autowrite
set autoread
set backup
set backupdir=~/.vim/backup//
set undofile
set undodir=~/.vim/undo//

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

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

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

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

相关文章

谷歌seo为什么要分析对手?

​简单来说&#xff0c;找到差距&#xff0c;弥补差距&#xff0c;提升网站 通过观察对手的网站内容、关键词策略和外链情况&#xff0c;是可以知道很多重要信息的&#xff0c;只要能熟练运用各种seo工具&#xff0c;通过分析对手网站是可以帮助优化自己网站的&#xff0c;研究…

进阶SpringBoot之 Shiro(2)环境搭建

Spring Boot 创建 Web 项目&#xff0c;pom.xml 导入 Thymeleaf 依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency> resources 目录下 templates 包新…

VastBase——数据库参数调优

一、内存参数调优 数据库的复杂查询语句性能非常强的依赖于数据库系统内存的配置参数。数据库系统内存的配置参数主要包括逻辑内存管理的控制参数和执行算子是否下盘的参数&#xff1a; 1.逻辑内存管理参数&#xff1a;max_process_memory max_process_memory – shared memo…

SQL Server Profiler 工具的使用

在很多时候&#xff0c;我们需要优化接口的执行效率&#xff0c;一方面是提高代码在内存中的执行效率&#xff0c;另一方面就是提高数据库操作相关的效率了。 .NET中在System.Diagnostics类库下提供了Stopwatch类用来分析代码的执行耗时。那么如果是牵扯到数据库相关的操作&am…

前端速通面经八股系列(一)—— CSS篇

CSS高频面经目录 一、CSS基础1. CSS选择器及其优先级2. CSS中可继承与不可继承属性有哪些3. display的属性值及其作用4. display的block、inline和inline-block的区别5. 隐藏元素的方法有哪些6. link和import的区别7. transition和animation的区别8. display:none与visibility:…

Beyond Compare 4试用过期规避办法

声明: 支持正版软件 一: 注册表处理 在搜索栏中输入 regedit &#xff0c;打开注册表 删除项目&#xff1a;计算机\HKEY_CURRENT_USER\Software\ScooterSoftware\Beyond Compare 4\CacheId 二: 脚本处理 创建bat文件, 写入下面的命令行. reg delete “HKEY_CURRENT_USER\…

华为od全面介绍!!!

三分钟带你全面了解华为OD 【合同及管理】签约方为科锐国际/外企德科&#xff08;人力服务公司&#xff09;&#xff0c;劳动合同期为4年&#xff0c;试用期6个月。员工关系合同管理、五险一金、考勤发薪由科锐国际/外企德科负责&#xff1b;定级定薪、员工培训、工作安排、绩…

Redis的配置和启动+Redis Insight连接

一、安装 Redis的安装&#xff1a;从镜像站下载&#xff1a;索引 redis-local (huaweicloud.com)&#xff0c;然后将其传到Linux虚拟机中进行解压&#xff0c;解压之后需要下载gcc&#xff0c;因为Redis底层是用c写的&#xff0c;所以要编译一下生成redis文件&#xff0c;然后…

人工智能领域正经历模型规模变革,小型语言模型(SLM)崛起,挑战“规模至上”观念。

在人工智能领域&#xff0c;一场关于模型规模的深刻变革正在悄然发生。长久以来&#xff0c;科技巨头们热衷于庞大语言模型&#xff08;LLM&#xff09;的开发竞赛&#xff0c;但如今&#xff0c;小型语言模型&#xff08;SLM&#xff09;正以其独特的优势逐步崭露头角&#xf…

麦弗逊悬架KC特性分析APP开发与应用

汽车悬架系统是汽车重要的组成部分之一&#xff0c;起到支撑车身、减震降噪、提高行驶稳定性等多种作用。其中&#xff0c;悬架系统的K&C特性是一个重要指标&#xff0c;直接影响到汽车的操纵稳定性和乘坐舒适性&#xff0c;是悬架系统设计和优化的关键目标之一。 图1 汽车…

font-face 字体设置

摘要: font-face是css3中允许使用自定义字体的一个模块。 font-face的是一个CSS规则&#xff0c;允许你输入自己的字体出现在网站上&#xff0c;即使在特定的字体在访问者的计算机上没有安装。这条规则最重要的是&#xff0c;它为设计师打开了一个全新的世界。您可以使用任何你…

不平衡分类的成本敏感学习

不平衡分类的成本敏感学习 大多数机器学习算法都假设模型所犯的所有错误分类错误都是相同的。 对于不平衡分类问题&#xff0c;情况通常并非如此&#xff0c;因为遗漏正类或少数类案例比错误地将示例归类为负类或多数类更糟糕。有许多现实世界的例子&#xff0c;例如检测垃圾…

高效好用的10个自动化办公库分享

高效可用的10个自动化办公库 10个常用的Python自动化办公库本次内容涵盖了Excel、Word、PPT、ODF、PDF、邮件、微信、文件处理等所有能在办公场景实现自动化的库&#xff0c;希望能够对大家有所帮助。 PythonExcel自动化库 1.xlwings 库官网&#xff1a;https://www.xlwings…

用 Python 解锁电影台词中的秘密:给孩子一个学英语的新奇方式

引言 想象一下&#xff1a;孩子们不仅在看他们喜欢的电影&#xff0c;还能从中学到新的英语单词&#xff01;有没有什么比这更有趣、更高效的学习方式&#xff1f;在这篇博客中&#xff0c;我将带你一步步搭建一个 Python 工具&#xff0c;从电影台词中提取单词并生成详细的词…

06:网表更新到PCB

1.先了解HDMI设计规范 有4对差分线&#xff0c;1对IIC串行总线信号从芯片---->防静电器件—>HDMI输出 发现错误&#xff0c;没有SDA网络&#xff0c;检查原理图 重新导网表 3.完成信号芯片—>防静电模块—>HDMI布局

PMP–知识卡片--迭代型生命周期

迭代指的是多次循环。例如&#xff0c;软件开发按照版本发布&#xff0c;每一个版本内部都是一个小的瀑布开发&#xff0c;都会经历“需求分析—设计—开发—测试—发布”周期&#xff0c;下一个迭代在此基础上重复这些步骤&#xff0c;对软件进行优化升级&#xff0c;发布新的…

用友U8接口-自定义项和扩展自定义项(6)

概括 本文的操作需要正确部署U8API保存单据时传入自定义项和扩展自定义项 单据自定义项 ERP界面 接口参数 自定义项为标准erp字段&#xff0c;以cDefine开始的字段对应接口传入参数位置 [{"Inum": "OtherIn","Data": {"iHead": {&…

和星辰为伴,与代码共舞

大家好&#xff0c;我是小悟 在探索数字编织的浩瀚宇宙中&#xff0c;独立开发者犹如孤独的星际航行者&#xff0c;驾驶着创意与技术的飞船&#xff0c;穿梭于代码的无垠星海。 他们的日常工作&#xff0c;是一幅由无数个日夜辛勤耕耘编织而成的壮丽画卷&#xff0c;每一笔都…

进程通信——共享内存

文章目录 1.基本认识1.1 概念介绍1.2主要原理 2.使用方法2.1创建共享内存shmget2.1.1 shmget2.1.2 ftok 2.2映射地址空间shmat2.3 访问共享内存2.4 同步和互斥 3.接口封装3.1 创建shm_create3.2 映射shm_connect3.3 多进程共享内存 共享内存是一种机制&#xff0c;也是进程间进…

SpringBoot中@SchedulerLock注解实现定时任务中分布式锁的使用

背景 在SpringBoot项目中经常会去写一些定时任务&#xff0c;但是当我们的服务的实例部署多个的情况下&#xff0c;那么每个实例中的定时任务都会执行一遍&#xff0c;这显然不是我们想要的&#xff0c;我们只想让它执行一次。在没有引入像xxl-job之类的分布式任务调度框架的前…