- 移动
在一般模式中,你可以使用h
(左)、j
(下)、k
(上)和l
(右) 在 vim 里移动。咋看起来写 vim 的人随意地选取了这些字母,不过这个做法有它很好的理由:移动是编辑器里最常做的事情,而这些键都在你右手放在键盘上时手指正对的那一行。换句话说,它们就在你最方便按的地方。
注意:
- 也可以通过方向键来移动。只不过这样做反而会大大地地降低编辑文件的速度。因为按下方向键的时候必然要把手从字母键上移动到方向键上。如果一个小时内要重复这个动作成百上千遍的话,使用这四个键会节约数量可观的时间。因此,如果想高效地编辑的话,还是使用 h、j、k 和 l 吧。
- 同时,也有些主机上的键盘是没有方向键或者不按常规方式排列方向键的。所以,知道如何使用这四个键也能在遇到上述情况下对你编辑文件有所帮助。
- 删除
删除的方法是将光标移到想删除的文字上面然后按下x
键
删除一整行内容使用 “dd” 命令。删除后下面的行会移上来填补空缺。
可以通过 “J” (即Shift
+j
)命令来删除换行符。 - 撤销和重复
假如你删除过头了,当然你可以再输入一次的。不过会有更简单的方法。命令u
会撤销你最后一次的编辑。
如果你撤销过头了,可以按下Ctrl
+r
(重复)来取消撤销过多带来的效果. - 保存退出
可以使用 “:wq” 命令来退出 vim。这个命令会将修改的文件写回硬盘然后退出。如果你输入了“:wq”,你的修改会被提交而且不可以进行撤销和重复操作,然后退出 vim。这个命令有三个部分:
1.冒号 (:),它会让编辑器进入命令模式;
2.命令 w,它告诉编辑器保存文件;
3.命令 q,它告诉编辑器退出程序。
某些时候,你可能会在你改了一大堆东西后,突然意识到你就不应该修改这个文件。不用担心,vim 有一个“退出然后放弃所有修改”的命令。它就是 “:q!”。这个命令同样有三个部分:
1.冒号 (:),它会让编辑器进入命令模式;
2.命令 q,它告诉编辑器退出程序;
3.然后是强制命令修饰符——感叹号 (!)。感叹号是必须的,它告诉 vim 无需保存文件。
进阶操作
- 设置行号
用“:set nu”命令来设置行号,设置后应如下所示,可以用“:set nonu”来取消行号设置。
- 移动
- 查找替换
- 复制粘贴
- 删除
- 撤销和重复
- 打开、保存、退出
- 同时编辑多个文件
- 可视模式
- 环境设置
- 暂时存档文件和恢复
当编辑一个文件时,在这个文件所处的目录底下就会有一个临时文件,文件名为“编辑的文件名.swp”这是一个隐藏文件, 所有修改都会暂时存在这个文件中。在编辑过程中,系统或者 vi 非正常关闭了,那么再重新用 vi 打开这个文件时时,系统就会询问要回复『Recovery』。按下R
,就可以将数据回复到修改过程的样子,再将 swp 文件删除。
注意:Vim 用户常见的一个问题就是被编辑器的模式所困扰。这常常是因为不清楚编辑器处在哪个模式,又或者不知道按下了哪个键导致编辑器进入了另外一个模式引起的。事实上,无论编辑器当前在什么模式,按下 Esc
键,它都会回到一般模式。有时需要按两次 Esc
,如果Vim 以一声蜂鸣回答你,那说明你已经是在一般模式了
最后附上自己的vim配置,在~/.vimrc文件(没有则创建该文件)中加入以下内容:
set nocompatible " 非兼容模式
filetype on " 自动识别文件格式
filetype indent on " 依据文本类型进行缩进
filetype plugin on
filetype plugin indent on
let mapleader=" "
" let &t_SI = "\<Esc>]50;CursorShape=1\x7"
" let &t_SR = "\<Esc>]50;CursorShape=2\x7"
" let &t_EI = "\<Esc>]50;CursorShape=0\x7"
" this vim, the base editor! Directer
noremap K 5kzz
noremap J 5jzz
noremap <C-D> 5<C-E>
noremap <C-U> 5<C-Y>
noremap n nzz "zz可以让当前行居中
noremap N Nzz
noremap * *zz
noremap # #zz
" Ctrl + c 替换"
noremap <C-c> yiw:%s/<C-r>0//g<Left><Left>
noremap <C-\> ^x<Down> " Ctrl+\进行去注释
noremap \ I#<ESC><Down> " \对改行加注释
map <C-f> #* "让Ctrl+f变成查找当前单词
noremap <ESC> :nohlsearch<CR><ESC> " 按ESC清除高亮的搜索结果
noremap <esc>^[ <esc>^[
noremap W :inoremap ( ()<><Left>Left<CR>:inoremap [ []<><Left>Left<CR>:inoremap { {}<><Left>Left<CR>:inoremap ' ''<><Left>Left<CR>:inoremap " ""<><Left>Left<CR>:inoremap < <><><Left>Left<CR>:set relativenumber<CR>:set number<CR>:set autoindent<CR>:set smartindent<CR> " Ctrl+W启动输入成对括号
noremap E :inoremap ( (<CR>:inoremap [ [<CR>:inoremap { {<CR>:inoremap ' '<CR>:inoremap " "<CR>:inoremap < <<CR>:set norelativenumber<CR>:set nonumber<CR>:set noautoindent<CR>:set nosmartindent<CR> " Ctrl+E关闭成对括号
inoremap ( ()<Left>
inoremap [ []<Left>
inoremap { {}<Left>
inoremap ' ''<Left>
inoremap " ""<Left>
inoremap < <><Left>
map s :w<CR>
map Q :q<CR>
map S :wq<CR>
map <leader>sc :set spell!<CR>
noremap <C-x> ea<C-x>s
inoremap <C-x> <Esc>ea<C-x>s
inoremap <C-a> <Esc>A
inoremap <C-i> <Esc>I
syntax on " 语法高亮
colorscheme desert " 设置主题颜色
set encoding=utf-8
"set list
set number " 显示行号
set relativenumber " 显示相对行号
" set cursorline " 当前行显示下划线
set wrap " 当这一行太长的时候,就自动换行显示
set wildmenu " 命令栏输入指令的时候,按tab键出来候选项
set ignorecase " 搜索的时候忽略大小写
set smartcase " 全为小写的时候忽略大小写,有大写的时候还是要求大小写的
set showcmd
set hlsearch " 高亮搜索词
set incsearch " 在输入的时候就高亮搜索结果了
set autoindent " 自动缩进,和上一行保持一致
set smartindent " 会依据文件语法只能缩进
set showmatch " 显示括号匹配
set fdm=syntax " 依据语法自动折叠
set expandtab " 将tab键用空格代替
set tabstop=4 " 让tab等于4个空格
set softtabstop=4
![](https://img-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)
最全的Linux教程,Linux从入门到精通
======================
1. **linux从入门到精通(第2版)**
2. **Linux系统移植**
3. **Linux驱动开发入门与实战**
4. **LINUX 系统移植 第2版**
5. **Linux开源网络全栈详解 从DPDK到OpenFlow**
![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)
**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**
> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**