Linux-Vim

一、Vim 配置

​ vim界面打开以后很丑就不提了,关键有很多基本功能没有办法实现,所以需要自己配置,如果是linux系统,那么应该找到

/usr/share/vim/.vimrc

​ 如果是windows装完git以后会自动一个vim,此时应该找到

Git\etc\vimrc

​ 打开这个文件以后,进行以下配置

"语法高亮"
syntax on
"显示行号"
set number
"设置tab缩进"
set tabstop=4
set softtabstop=4
set shiftwidth=4
"自动缩颈"
set autoindent
set cindent
"显示匹配括号"
set showmatch
set matchtime=1
"设置没有备份文件"
set nobackup
set noswapfile
"括号自动补全"
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {<CR>}<ESC>O
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)
	if getline('.')[col('.') - 1] == a:char
		return "\<Right>"
	else
		return a:char
	endif
endfunction
filetype plugin indent on 

二、Vim 操作

2.1 总论

​ 个人感觉Vim太神奇了,但是我确实使用的不太舒服,虽然可以完全脱离鼠标办公了,但是功能键和编辑模式的完全分离,还是让人感觉到很不舒服。而且因为我现在也不需要那么多的功能,所以很多功能用的是真的很不习惯。所以只是在这里简单记录一下。

​ Vim 会涉及到很多个模式,但是我个人感觉模式之间并不是完全平等的关系,显然最开始进入的 Normal 模式为主模式,而其他模式就类似于卧房之于客厅,是从属关系,我们对文本的编辑主要依赖 Normal 模式。这也是我用不习惯 Vim 的原因。因为我没有很多的功能需求,我敲代码一个一个敲,用到的功能无非是复制粘贴,就好像有人买了台游戏机,却不打游戏一样,纯属浪费。所以为了符合 Vim的设计思想,我不打算一个模式一个模式的介绍,而是以功能分类进行介绍

模式功能
Normal就是初始模式,在这个模式下,所有的按键都是功能按键
Command命令行模式,输入“:”后进入,在这个模式下可以输入各种命令,一般是文件操作或者是查找替换
Insert编辑模式,输入“a,i,o”进入,就是所谓的编辑模式,可以码字的那种
Visual可视化模式,输入“v”进入,就是可以选中一些字符,类似于复制粘贴之前要选中目标的操作

​ 此外,在Normal模式下输入的功能键,会在右下角显示,我一开始一直以为没有显示(图里输入了z)

在这里插入图片描述

2.2 进入编辑模式

  • 朴素进入:按 a 或者 i 都可进入,按a是在光标后插入,按i是在光标前插入,所以应该按a
  • 另起一行以后进入:按 o 进入

2.3 文件操作

​ 这些操作都需要进入命令行模式后进行

  • w:保存
  • q:退出
  • wq:保存后退出,但是因为还需要打一个:,所以不太方便,可以在Normal模式下用ZZ代替
  • saveas + filename:另存为

2.4 撤销 / 恢复

  • u:撤销
  • Ctrl + r:恢复

2.5 选中

选中操作都需要在可视化模式下进行,通过光标的移动进行配合

  • o:重新定位起始光标

​ 有三种进入块操作的方式:

按键意义
v字符选择,会将光标经过的地方反白选择
V行选择,会将光标经过的行反白选择
Ctrl + v可视区块,可以用矩形的方式选择数据(就像鼠标的框选一样)

2.6 复制/粘贴/删除

  • x:删除(准确是剪切)光标后的一个字符
  • y:复制选中的内容(包括可视块中的数据)
  • yy:复制当前行
  • 行数 + yy:从当前行开始赋值指定的行数
  • y + 光标移动操作:复制当前行到光标移动行中的所有内容,比如说 ygg 就是赋值从当前行到文首的内容
  • dd:删除(准确是剪切)一行,下一行会自动上移
  • 行数 + dd:删除光标向下的 n 行
  • d + 光标移动操作:删除当前行到光标移动行中的所有内容,比如说 d10G 就是删除从当前行到第十行所有内容
  • p:粘贴,内容可以来自复制,也可以来自剪切

​ 从2.5、2.6两节可以看出,稍微复杂一点,功能强大一点的命令都是与光标的移动结合在一起的,可以说光标的移动构成了指令的执行范围。还有一种功能拓展方法就是 n + 操作表示一种重复操作。

2.7 查找替换

  • 替换:
    • :s/要替换的关键词/替换后的关键词:替换光标所在行第一个
    • :s/要替换的关键词/替换后的关键词/g:替换光标所在行所有
    • :%s/要替换的关键词/替换后的关键词:替换全行第一个
    • :%s/要替换的关键词/替换后的关键词/g:替换全行所有
  • 查找:直接在命令模式下输入 /查找内容 即可
  • n:表示向下再次执行查找内容
  • N:表示向上再次执行查找内容

2.8 光标移动

  • 0:将光标移动到行首
  • gg:是跳转回开头(感觉多余记这个,用 1G 代替挺好的)
  • G命令是区分大小写的):移到最后一行
  • 行号+G:移到指定行
  • w:按单词向后移动光标
  • b:按单词向前移动光标

2.9 多文件编辑

  • vim filename1 filename2 …… filenamen :在bash中输入这种命令,就可以同时打开多个文件

  • n:可用于向下切换文件。

  • N:可用于向上切换文件。

  • :files:提供一个打开的文件目录

2.10 多窗口

  • :sp filename:打开一个内容是filename的文件
  • 先按Ctrl + w 可以松手按 up:移动到下方窗口
  • 先按Ctrl + w 可以松手按 down:移动到上方窗口
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
后台采用apache服务器下的cgi处理c语言做微信小程序后台逻辑的脚本映射。PC端的服务器和客户端都是基于c语言写的。采用mysql数据库进行用户数据和聊天记录的存储。.zip C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值