Linux终端人性化vimrc编辑配置

目录

vim常用操作

扩展之批量注释

扩展之批量替换

.vimrc

pyhon代码补全功能安装

效果预览

.bashrc 

终端命令行预览时间


vim常用操作

常用的操作有很多,基本上总会用到的例如

x  删除当前字母

dd  删除正行

i 当前光标插入数据

a 当前位置后插入数据

o 下一行

......

......

扩展之批量注释

还有一种情况就是需要批量删除或者是注释,操作如下:

1. ctrl+v   按块选择区域

2.大写I 插入#

3.两下ESC,则实现了批量注释

反之删除的话就是先选择块区域,然后按x就删除了

扩展之批量替换

将所有127.0.0.1替换成hello

ESC后输入 :号进入编辑模式

:%s/127.0.0.1/hello/g

回车即可

.vimrc

.vimrc 文件允许用户定义各种设置,包括编辑器外观、键绑定、语法高亮、自动补全等。

配置示例如下:

set tabstop=4
set shiftwidth=4
set softtabstop=4
set noexpandtab
set nu
syntax on                       " 语法高亮
set ruler                       " 显示标尺
set showcmd                     " 输入的命令显示出来,看的清楚些
set cmdheight=1                 " 命令行(在状态行下)的高度,设置为1
set scrolloff=3                 " 光标移动到buffer的顶部和底部时保持3行距离
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}   " 状态行显示的内容
set laststatus=2                " 启动显示状态行(1),总是显示状态行(2)
set nocompatible                " 去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限

" 设置当文件被改动时自动载入
set autoread
" 代码补全
set completeopt=preview,menu
" 突出显示当前行
set cursorline
" 在处理未保存或只读文件的时候,弹出确认
set confirm
" 自动缩进
set autoindent
set cindent
"禁止生成临时文件
set nobackup
set noswapfile
"搜索忽略大小写
set ignorecase
"搜索逐字符高亮
set hlsearch
set incsearch
"行内替换
set gdefault
" 侦测文件类型
filetype on
" 载入文件类型插件
filetype plugin on
" 为特定文件类型载入相关缩进文件
filetype indent on
" 保存全局变量
set viminfo+=!
" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-
" 字符间插入的像素行数目
set linespace=0
" 允许backspace和光标键跨越行边界
set whichwrap+=<,>,h,l
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=1
" 使回格键(backspace)正常处理indent, eol, start等
set backspace=2
" 字符间插入的像素行数目
set linespace=0
" 增强模式中的命令行自动完成操作
set wildmenu
" 通过使用: commands命令,告诉我们文件的哪一行被改变过
set report=0
au BufRead,BufNewFile *  setfiletype txt
function! ClosePair(char)
    if getline('.')[col('.') - 1] == a:char
        return "\<Right>"
    else
        return a:char
    endif
endfunction
filetype plugin indent on
"打开文件类型检测, 加了这句才可以用智能补全
set completeopt=longest,menu

"""""新文件标题""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"新建.c,.h,.sh,.java文件,自动插入文件头
autocmd BufNewFile *.sh,*.py exec ":call SetTitle()"
"新建文件后,自动定位到文件末尾
autocmd BufNewFile * normal G
""定义函数SetTitle,自动插入文件头
func SetTitle()
    "如果文件类型为.sh文件
    if &filetype == 'sh'
        call setline(1,"\#########################################################################")
        call append(line("."), "\#    File Name: ".expand("%"))
        call append(line(".")+1, "\#    Author: eight")
        call append(line(".")+2, "\#    Mail: 18847097110@163.com ")
        call append(line(".")+3, "\#    Created Time: ".strftime("%c"))
        call append(line(".")+4, "\#########################################################################")
        call append(line(".")+5, "\#!/bin/bash")
        call append(line(".")+6, "RED='\\E[1;31m'")
        call append(line(".")+7, "GREEN='\\E[1;32m'")
        call append(line(".")+8, "RES='\\E[0m'")
        call append(line(".")+9, "")
    endif
    if &filetype == 'python'
        call setline(1,"\#########################################################################")
        call append(line("."), "\#    File Name: ".expand("%"))
        call append(line(".")+1, "\#    Author: eight")
        call append(line(".")+2, "\#    Mail: 18847097110@163.com ")
        call append(line(".")+3, "\#    Created Time: ".strftime("%c"))
        call append(line(".")+4, "\#########################################################################")
        call append(line(".")+5, "\#!/usr/bin/env python")
        call append(line(".")+6, "\# -*- coding: utf-8 -*-")
        call append(line(".")+7, "")
    endif
endfunc


let g:pydiction_location = '~/.vim/tools/pydiction/complete-dict'
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" CTags的设定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let Tlist_Sort_Type = "name"    " 按照名称排序
let Tlist_Use_Right_Window = 1  " 在右侧显示窗口
let Tlist_Compart_Format = 1    " 压缩方式
let Tlist_Exist_OnlyWindow = 1  " 如果只有一个buffer,kill窗口也kill掉buffer
let Tlist_File_Fold_Auto_Close = 0  " 不要关闭其他文件的tags
let Tlist_Enable_Fold_Column = 0    " 不要显示折叠树
let Tlist_Show_One_File=1            "不同时显示多个文件的tag,只显示当前文件的
"设置tags
set tags=tags
"set autochdir
pyhon代码补全功能安装
# 下载插件
wget https://github.com/rkulla/pydiction/archive/master.zip

# 解压
unzip -q master

# 创建工作目录
mkdir -p ~/.vim/tools/pydiction
cp -r pydiction-master/after ~/.vim
cp pydiction-master/complete-dict ~/.vim/tools/pydiction

# 打开vimrc
vim ~/.vimrc

# 添加如下代码
let g:pydiction_location = '~/.vim/tools/pydiction/complete-dict'
效果预览

新建个sh脚本文件,展示如下:

新建个py脚本文件如下:

table可以补全代码

.bashrc 

终端命令行预览时间

vim .bashrc

加上如下内容:

PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \[\033[01;31m\]$(date "+%Y-%m-%d %H:%M:%S")\[\033[00m\]\$ '

source /root/.bashrc

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安装Schedule库的方法最终解答!_Python第三方库

安装Python第三方库Schedule 我的环境&#xff1a;Window10&#xff0c;Python3.7&#xff0c;Anaconda3&#xff0c;Pycharm2023.1.3 Schedule库 Schedule 是一个轻量级、功能强大而灵活的任务调度工具库&#xff0c;用于在指定的时间间隔内执行任务。为用户提供了简单易用的…

标题:探索AI绘画:使用深度学习生成艺术

正文&#xff1a; 随着计算机技术的发展&#xff0c;人工智能在各个领域取得了显著的成果。通过训练深度学习模型&#xff0c;AI可以学习大量的艺术作品&#xff0c;从而生成具有独特风格和创意的新作品。 本文将介绍如何使用Python和TensorFlow实现一个简单的AI绘画程序。 二、…

云原生:应用敏捷,华为视角下的应用现代化

Gartner 也提出&#xff0c;到 2023 年&#xff0c;新应用新服务的数量将达到 5 亿&#xff0c;也即是说&#xff1a;“每个企业都正在成为软件企业”。据IDC 预测&#xff0c;到 2025 年三分之二的企业将成为多产的“软件企业”&#xff0c;每天都会发布软件版本。越来越多的企…

AI绘图:Stable Diffusion WEB UI 详细操作介绍:基础篇

接上一篇《AI绘图体验&#xff1a;Stable Diffusion本地化部署详细步骤》本地部署完了SD后&#xff0c;大家肯定想知道怎么用&#xff0c;接下来补一篇Stable Diffusion WEB UI 详细操作&#xff0c;如果大家还没有完成SD的部署&#xff0c;请参考上一篇文章进行本地化的部署。…

vue2+element-ui 实现OSS分片上传+取消上传

遇到问题&#xff1a;项目中需要上传500MB以上的视频。一开始使用上传组件el-upload&#xff0c;调用后台接口&#xff0c;但是出现了onprogress显示百分百后接口一直pending&#xff0c;过了很多秒后接口才通&#xff0c;如果遇到大文件的话&#xff0c;接口就会报超时。 解决…

【javaScript】DOM编程入门

一、什么是DOM编程 概念&#xff1a;DOM(Document Object Model)编程就是使用document对象的API完成对网页HTML文档进行动态修改&#xff0c;以实现网页数据和样式动态变化的编程 为什么要由DOM编程来动态修改呢&#xff1f;我们就得先理解网页的运行原理&#xff1a; 如上图&a…

机器学习每周挑战——信用卡申请用户数据分析

数据集的截图 # 字段 说明 # Ind_ID 客户ID # Gender 性别信息 # Car_owner 是否有车 # Propert_owner 是否有房产 # Children 子女数量 # Annual_income 年收入 # Type_Income 收入类型 # Education 教育程度 # Marital_status 婚姻状况 # Housing_type 居住…

C_C++数据的在内存中的分布

C/C内存分布 在编程世界中&#xff0c;C和C语言一直以其强大的性能和灵活性著称。然而&#xff0c;这种强大和灵活的背后&#xff0c;离不开对内存分布的深入理解和熟练掌握。本文将详细介绍C/C程序中的内存分布&#xff0c;包括栈、堆和全局变量的存储区域。下面是c/c中&…

如何在本地搭建集成大语言模型Llama 2的聊天机器人并实现无公网IP远程访问

文章目录 1. 拉取相关的Docker镜像2. 运行Ollama 镜像3. 运行Chatbot Ollama镜像4. 本地访问5. 群晖安装Cpolar6. 配置公网地址7. 公网访问8. 固定公网地址 随着ChatGPT 和open Sora 的热度剧增,大语言模型时代,开启了AI新篇章,大语言模型的应用非常广泛&#xff0c;包括聊天机…

x-cmd-pkg | broot 是基于 Rust 开发的一个终端文件管理器

简介 broot 是基于 Rust 开发的一个终端文件管理器&#xff0c;它设计用于帮助用户在终端中更轻松地管理文件和目录&#xff0c;使用树状视图探索文件层次结构、操作文件、启动操作以及定义您自己的快捷方式。 同时它还集成了 ls, tree, find, grep, du, fzf 等工具的常用功能…

Python爬虫之分布式爬虫

分布式爬虫 1.详情介绍 分布式爬虫是指将一个爬虫任务分解成多个子任务&#xff0c;在多个机器上同时执行&#xff0c;从而加快数据的抓取速度和提高系统的可靠性和容错性的技术。 传统的爬虫是在单台机器上运行&#xff0c;一次只能处理一个URL&#xff0c;而分布式爬虫通过将…

Android Glide配置AppGlideModule定制化线程池,Kotlin(1)

Android Glide配置AppGlideModule定制化线程池&#xff0c;Kotlin&#xff08;1&#xff09; plugins {id org.jetbrains.kotlin.kapt }implementation com.github.bumptech.glide:glide:4.16.0kapt com.github.bumptech.glide:compiler:4.16.0 import android.content.Context…

C之结构体初始化10种写法总结(九十)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

开启 Keep-Alive 可能会导致http 请求偶发失败

大家好&#xff0c;我是蓝胖子&#xff0c;说起提高http的传输效率&#xff0c;很多人会开启http的Keep-Alive选项&#xff0c;这会http请求能够复用tcp连接&#xff0c;节省了握手的开销。但开启Keep-Alive真的没有问题吗&#xff1f;我们来细细分析下。 最大空闲时间造成请求…

跨境金融区块链服务平台

跨境金融服务是因企业及个人跨境经营、交易、投资、往来等活动而产生的资金使用、调拨、配置等需求&#xff0c;而提供的金融服务。近年来&#xff0c;随着我国经济的快速稳步增长和全球化经济一体化的不断深入发展&#xff0c;跨境金融业务增长迅速&#xff0c;监管也开始转化…

在ChatGPT中,能用DALL·E 3编辑图片啦!

4月3日&#xff0c;OpenAI开始向部分用户&#xff0c;提供在ChatGPT中的DALLE 3图片编辑功能。 DALLE 3是OpenAI在2023年9月20日发布的一款文生图模型&#xff0c;其生成的图片效果可以与Midjourney、leonardo、ideogram等顶级产品媲美&#xff0c;随后被融合到ChatGPT中增强其…

反截屏控制技术如何防止信息通过手机拍照泄漏?

反截屏控制技术为企业数据安全提供了重要的防护措施。通过以下几点&#xff0c;有效阻止了信息通过拍照等方式的泄漏&#xff1a; 反截屏控制开启&#xff0c;用户启动截屏操作时&#xff0c;允许非涉密内容截屏操作&#xff0c;但所有涉密内容窗口会自动隐藏&#xff0c;防止涉…

记录一次threejs内存泄露问题排查过程

问题描述&#xff1a; 一个有关地图编辑的使用threejs的这样的组件&#xff0c;在多次挂载销毁后&#xff0c;页面开始卡顿。 问题排查&#xff1a; 1. 首先在chrome dev tool中打开performance monitor面板&#xff0c;观察 JS head size、DOME Nodes、Js event listeners数…

AWVS 安装详细教程

一、软件介绍 Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的Web网络漏洞扫描工具&#xff0c;它通过网络爬虫测试你的网站安全&#xff0c;检测流行安全漏洞。AWVS官方网站是&#xff1a;http://www.acunetix.com/ 二、下载安装 官方下载地址&#xff1a;https…

【大数据存储】yolov3识虫实验

一、项目实践步骤 图 1 构建模型和完成训练的程序图 二、实验背景 2.1数据集介绍 AI识虫数据集结构如下&#xff1a; 提供了2183张图片&#xff0c;其中训练集1693张&#xff0c;验证集245&#xff0c;测试集245张。包含7种昆虫&#xff0c;分别是Boerner、Leconte、Linnaeus…