从零开始配置 vim(9)——初始配置
虽然本系列文章叫做从0开始配置vim,似乎我们从一开始就要写vimrc配置文件,但是我们并没有这么做。我们先经过几篇文章了解了下面的几个内容
- 如何设置vim属性,从而改变vim的特征
- 配置快捷键,以提高我们的使用效率
- 使用自动命令,以便使用vim来自动化我们的相关操作
这些既有vimscript的东西,也有vim自身一些特性的描述。拥有这些基础知识之后,在阅读其他人写的配置或者自己配置将会变得更加容易。当然关于vim我们还有很多内容没有讲,例如该如何自定义命令,如何弹出一个窗口,以及到最后如何编写自己的插件。如果后续在配置过程中涉及到新的内容,我将会给大家进行讲解,尽量让大家明白我们配置的每行代码都有哪些作用,让大家不仅仅是照着抄一遍,而是能举一反三,根据自己的习惯打造完全属于自己的 vim。话不多说,下面就让我们从0开始来一步一步的将原始落后的vim打造成现代化的好用的编辑器。
相应的准备工作
开始配置前,让我们进行一些准备工作。
- 我们采用
neovim进行配置,也打算使用 纯lua进行配置。如果你用的是vim,请安装下载最新的neovim。 - 我本地的环境采用的是
neovim0.7.2版本,你可以使用稍微低一点的版本,但至少保证版本在0.6及以上版本。(不要怪我一直变换版本,因为7以上的版本添加了自动命令的lua接口。) - 我随教程创建了一个 github仓库用于保存记录每次的配置,各位小伙伴可以克隆下来,也可以自己按照上面的目录结构和文章所描述的自己一步步手动组织。仓库地址: nvimrc-tutorial 。我们先使用 git clone
https://github.com/aMonst/nvimrc-tutorial.git ~/.config/nvim将仓库克隆到本地,然后在里面创建一个init.lua文件作为配置文件的入口
基础配置
我们在 init.lua 中写入如下内容作为基础配置
-- 设置文件编码格式为 utf-8
vim.g.encoding = "utf-8"
-- 设置终端编码格式为 utf-8
vim.o.termencoding = "utf-8"
-- 开启语法高亮
vim.o.syntax = "enable"
-- 显示相对行号
vim.o.relativenumber = true
-- 显示行号
vim.o.number = true
-- 高亮所在行
vim.o.cursorline = true
-- 自动换行
vim.o.wrap = true
-- 显示光标位置
vim.o.ruler = true
-- 边输入边搜索
vim.o.incsearch = true
-- 开启搜索匹配高亮
vim.o.hlsearch = true
-- 搜索时自行判断是否需要忽略大小写
vim.o.smartcase = true
-- tab键转换为 4 个空格
vim.o.tabstop = 4
vim.o.softtabstop = 4
vim.o.shiftwidth = 4
-- 新行对齐当前行,tab转换为空格
vim.o.expandtab = true
vim.bo.expandtab = true
vim.o.autoindent = true
vim.bo.autoindent = true
vim.o.smartindent = true
-- << >> 缩进时移动的长度
vim.o.shiftwidth = 4
vim.bo.shiftwidth = 4
-- 使用jk移动光标时,上下方保留8行
vim.o.scrolloff = 8
vim.o.sidescrolloff = 8
-- 设置自动折叠
vim.o.smartindent = true
-- 历史命令最多保存1000条
vim.o.history = 1000
-- 显示空白字符
vim.o.list = true
-- 样式
vim.o.background = "dark"
vim.o.termguicolors = true
vim.opt.termguicolors = true
完成之后,再次打开vim发现它已经变成了这样

本篇就到这里了,下一篇我们将对默认的快捷键进行配置
从零开始配置 vim(9)——初始配置的更多相关文章
- vim 的初始配置
我是一个vim爱好者,项目开发过程中,大量地使用vim作为编辑工具. 今天刚开箱了一台新的 CentOS7, 现将Vim安装后的一些基本配置作一下记录. 使用配置模板 vim安装完之后,大多数配置都是 ...
- 使用Vundle管理配置Vim的插件
1.介绍: 安装需要Git,触发git clone,默认将每一个指定特定格式插件的仓库复制到~/.vim/bundle/. 搜索需要Curl支持. Windows用户请直接访问Windows setu ...
- vim + ctags + taglist配置和使用
vim +ctags + taglist ,ctags+cscope 安装配置和使用 内容:VIM下ctags和taglist的安装配置方法:一键安装 ctags和cscope的方法 :vim语法高亮 ...
- Linux中vim的简单配置
本文主要分享Linux中vim的简单配置 ★配置文件的位置 在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...
- centos初始配置
修改语言环境 [root@oracledb ~]# sudo vim /etc/sysconfig/i18n 将将zh_CH修改为"en_US.UTF-8" 搭建yum本地源 参考 ...
- Mac 配置 vim
Mac 配置 vim 安装 vim 7.4 cd ~ hg clone https://code.google.com/p/vim/ cd vim ./configure --with-feature ...
- mac配置vim-go
基本的设置信息(参考网址:http://hessian.cn/p/1026.html): "还是配置/.vimrc文件. syn on "语法支持 set laststatus=2 ...
- vim插件和配置
vim插件和配置 插件 pathogen 可以方便地管理vim插件 在没有pathogen的情况下,vim插件的文件全部都放在.vim目录,卸载插件很麻烦,pathogen可以将不同的插件放在一个单独 ...
- Git 笔记二-Git安装与初始配置
git 笔记二-Git安装与初始配置 Git的安装 由于我日常生活和工作基本上都是在Windows上,因此此处只说windows上的安装.Windows上的安装和其他程序一样,只需要到http://g ...
- Ubuntu安装与初始配置
转载请注明作者:梦里风林 更多文章查看我的个人站: ahangchen.site 适用于Ubuntu版本 14.04/16.04LTS 64位 先上图 双系统安装 划分空闲磁盘,U盘安装ubuntu ...
随机推荐
- 高性能 Jsonpath 框架,Snack3 3.2.57 发布
Snack3,一个高性能的 JsonPath 框架 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计.其下一切数据都以ONode表示,ONode也 ...
- BBS项目(二):首页导航条搭建 修改密码功能 首页数据展示 个人站点页面
目录 首页导航条搭建 session判断用户是否登录 更换验证码 导航条更多功能 退出系统 修改密码前端页面 使用大模态框 编写模态框 前端表单编写 修改密码后端逻辑 接受参数 验证参数 修改密码 首 ...
- Gcc内置原子操作__sync_系列函数
Gcc内置原子操作__sync_系列函数简述及例程 Gcc 4.1.2版本之后,对X86或X86_64支持内置原子操作.就是说,不需要引入第三方库(如pthread)的锁保护,即可对1.2.4.8字节 ...
- 这应该是java最好用的orm之一了
这应该是java最好用的orm之一了 说起orm大家肯定都不会陌生,作者是一个.net菜鸟.并且是在.net繁荣的orm圈子下成长的,所以这次给大家带来的是媲美efcore,freesql,sqlsu ...
- 在Windows上D盘上安装Docker
Reference https://www.willh.cn/articles/2022/07/13/1657676401964.html Docker默认安装在C盘: "C:\Progra ...
- 移动端h5中rem适配
1 (function (win, lib) { 2 var doc = win.document; 3 var docEl = doc.documentElement; 4 var metaEl = ...
- Ceph学习笔记(1)- 架构概述
简介 Ceph的目标是采用商业硬件来构建大规模的.具有高可用.高扩展.高性能的分布式存储系统,ceph具有如下特点: 软件定义存储:Ceph不需要特定的硬件,在主流的Linux发行版等类Unix操作系 ...
- shell脚本(16)-awk命令
文档目录 一.awk介绍 二.awk基本用法 1.awk对字段(列)的提取: 2.awk对记录(行)的提取: 3.awk对字符串提取: 4.awk程序的优先级: 三.awk高级用法 1.awk定义数组 ...
- Java开发者的Python进修指南:JSON利器之官方json库、demjson和orjson的实用指南
JSON JSON作为目前最流行的传输格式,在Python中也有相应的实现方式.由于JSON格式的文本可以跨平台并且简单易用,因此被广泛传播.因此,我们今天的主要讨论内容是如何熟练地应用Python的 ...
- JMS微服务开发示例(七)使用 Serilog 作为日志提供者
nuget 引入: Serilog.Extensions.LoggingSerilog.Settings.ConfigurationSerilog.Sinks.ConsoleSerilog.Sinks ...