vim基本配置

vim基本配置:包括tab键替换成4个空格

Edit Vim configuration file ".vimrc" in your HOME directory, add below lines:

set et
set ci
set sw=4
set ts=4

 After new setting take effect, each time you press TAB key, it will automatically replaced by 4 SPACE and do indentation.

You can still insert real Tabs as [Ctrl]-V [Tab].

If you open an unwell indentation source code file, you can press "gg=G", all TABs will be replaced by 4 SPACE. 

        在使用vim编辑器的时候  很多系统里默认的vim tapstop是8,而很多时候我们需要的tapstop是4,比如在写python的时候,我们都知道python严重依赖缩进,所以tapstop是8的话 ,这个脚本比较大的时候那就相当的不好看了,所以在这种情况下修改tapstop为4还是很有必要的。

        怎么设置这个东东呢?很简单  打开/etc/vimrc 加入类似这样的内容就可以了:

set tabstop=4

或者

set  ts=4

        然后你再用vim编辑个文件并按tab试试,就会感觉到明显的不一样。

但是问题又来了,在python脚本里,如果缩进使用tab那么就不再推荐在同一脚本里使用其他的符号来缩进,因为这很有可能导致诸多兼容性问题,比如你既使用了tab又在某些地方使用了空格来缩进,额,恭喜你,你很有可能会遇到无法执行此脚本的错误。

这个时候怎么办呢?最显而易见的方法只有一个,那就是统一使用相同的缩进方法,该是做出艰难的选择的时候了:要么用tab  要么用空格 。而很多经常使用python的同学可能会发现使用空格缩进比tab来缩进似乎更加明智,因此也极力推荐统一使用空格,这是为什么呢?当你vim编辑一个文件的时候,你能一眼就看出缩进使用的是tab吗?最有可能发生的是把tab当成了空格而不是把空格看成tab。为了避免这样的困扰,统一使用空格看起来是更好的选择。

        现在你再打开vim,按下tab,再按backspace,你会发现tab出来的缩进只需要backspace一次就能删除,这足以说明这段空白是tab;然后你再次修改vimrc,并加入:

set expandtab

set et

再次打开vim,你会发现tab出来的空白已经变成空格了,而这个时候一个tab就真正成为4个空格了,而不仅仅是4个空格的缩进距离。这才是我们真正想要的。

那么如果你编辑了一个文件并且想要在别人修改这个文件的时候不会出现类似的疑问怎么办呢?方法有两个,一个是你告诉他,你使用的是空格还是tab,另一个方法是使用vim的modeline,当别人打开这个文件的时候会自动使用相同的配置。什么是modeline呢?就是往文件里面写入特定的行,当vim打开这个文件的时候会自动读取这一行的参数配置并调整自己的设置到这个配置,例如你可能经常会看到在有些源码的文件末尾会出现这样的行:

# vim:et:ts=4:sw=4:

这个就是modeline。当其他人的vimrc里打开了set modeline的时候,就会自动读入这个配置。

更多的信息请参考vim :help auto-setting  和:help modeline

set nocompatible "关闭vi兼容
set enc=utf-8
"set number "显示行号
filetype plugin on "文件类型
set history=500 "历史命令
syntax on "语法高亮
"set autoindent "ai 自动缩进
"set smartindent "智能缩进
set showmatch "括号匹配
set ruler "右下角显示光标状态行
set nohls "关闭匹配的高亮显示
set incsearch "设置快速搜索
set foldenable "开启代码折叠
"set fdm=manual "手动折叠
set foldmethod=syntax "自动语法折叠
set modeline "自动载入模式行
"自动插入modeline
func! AppendModeline()
let l:modeline = printf(" vim: set ts=%d sw=%d tw=%d :",
\ &tabstop, &shiftwidth, &textwidth)
let l:modeline = substitute(&commentstring, "%s", l:modeline, "")
call append(line("$"), l:modeline)
endfunc
"按\ml,自动插入modeline
nnoremap <silent> <Leader>ml :call AppendModeline()<CR>
"空格展开折叠
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>

"set tabstop=4
"set shiftwidth=4
set ts=4
set sw=4
set expandtab
"自动tab

 

if has("autocmd")
filetype plugin indent on
endif
autocmd filetype python setlocal et sta sw=4 sts=4


"根据文件类型自动插入文件头
autocmd BufNewFile *.py,*.sh exec ":call SetTitle()"
func SetTitle()
if &filetype == 'sh'
call setline(1, "\#!/bin/bash")
call append(line("."), "\# Author:itxx00@gmail.com")
call append(line(".")+1, "")
else
call setline(1, "\#!/bin/env python")
call append(line("."), "\#coding:utf-8")
call append(line(".")+1, "\#Author:itxx00@gmail.com")
call append(line(".")+2, "")
endif
endfunc 
"新建文件后自动定位至文件末尾
autocmd BufNewFile * normal G
"F2去空行
nnoremap <F2> :g/^\s*$/d<CR>



<think>好的,用户想学习Vim基本命令,需要列出基本命令及其用法。首先,我需要回顾一下自己掌握的Vim知识,确保准确无误。根据用户提供的引用内容,Vim有四种模式:正常模式、插入模式、可视模式和命令行模式。基本操作包括模式切换、光标移动、文本编辑等。 首先,要明确Vim的四种模式,这是基础。用户可能对模式切换不太清楚,所以需要详细说明每个模式的作用,比如正常模式用于命令操作,插入模式用于输入文本。然后,根据引用中的信息,引用[3]提到了工作模式,引用[2]也提到了模式的重要性,所以这部分必须包含。 接下来是打开和保存文件,这部分属于基本操作。用户可能需要知道如何用Vim打开文件,保存退出等。例如,vim filename是打开文件,:w保存,:q退出,这些在引用[1]和[3]中都有提到。 光标移动是Vim高效的关键,需要分层次讲解。单个字符移动用h、j、k、l,词组移动用w、b,行移动用0、$,这些在引用[3]的光标移动命令部分有详细说明。需要确保这些命令正确无误,并举例说明,比如使用5j向下移动5行。 然后是文本编辑,包括插入、删除、复制粘贴等。插入命令如i、a、o等,删除命令如x、dd,复制粘贴用yy和p,这些在引用[3]和[4]中都有涉及。要注意区分不同模式下的命令,比如删除整行是在正常模式下使用dd。 查找和替换也是常用功能,/keyword进行查找,:s/old/new替换,这部分引用[3]的查找替换命令部分有提到。需要说明如何执行全局替换和确认替换。 最后,配置部分可能用户暂时不需要,但可以简要提及,如引用[4]中的.vimrc文件,让用户知道如何持久化配置。 生成相关问题时要覆盖用户可能进一步想知道的内容,比如模式切换、保存退出、移动优化、配置方法等。确保问题与用户的学习路径相关,帮助他们深入理解。 检查所有命令是否符合LaTeX格式,比如使用$vim filename$这样的行内代码,独立代码块用三个反引号包裹。同时确认引用标识正确,每个引用来源对应正确的引用内容,例如引用[1]到[4]分别对应不同的博客或文章。 最后,确保回答结构清晰,分点列出,每个部分有示例代码,并正确标注引用,末尾的问题相关且引导用户深入学习。避免错误,比如混淆命令模式与命令行模式,或者误写命令如把:wq写成:qw。需要仔细核对每个命令的正确性,确保用户能够正确应用。</think>### Vim 基本命令列表及用法 #### 一、模式切换 Vim 包含四种模式: 1. **正常模式**(默认模式):用于执行命令和移动光标(按 `Esc` 返回)[^3] 2. **插入模式**:用于编辑文本(按 `i`/`a`/`o` 进入) 3. **可视模式**:用于选择文本块(按 `v` 进入) 4. **命令行模式**:用于保存、退出或执行高级操作(按 `:` 进入)[^1] #### 二、文件操作 ```bash $ vim filename # 打开/创建文件 ``` - **保存与退出**(命令行模式下): ```vim :w # 保存文件 :q # 退出 :wq # 保存并退出 :q! # 强制退出不保存 [^1] ``` #### 三、光标移动(正常模式) 1. **单个字符移动**: - `h`(左)、`j`(下)、`k`(上)、`l`(右) 2. **词组移动**: - `w` 跳到下一个单词首,`b` 跳到上一个单词首 3. **行移动**: - `0` 行首,`$` 行尾,`gg` 文件首行,`G` 文件末行 4. **跳转指定行**: ```vim :10 # 跳转到第10行 ``` #### 四、文本编辑 1. **插入命令**: - `i` 光标前插入,`a` 光标后插入,`o` 下一行插入 [^3] 2. **删除命令**: - `x` 删除单个字符,`dd` 删除整行,`5dd` 删除5行 3. **复制与粘贴**: - `yy` 复制整行,`p` 粘贴到光标后,`5yy` 复制5行 [^3] 4. **撤销与重做**: - `u` 撤销操作,`Ctrl + r` 重做 #### 五、查找与替换 1. **查找**(命令行模式下): ```vim /keyword # 查找关键词,按 `n` 跳转到下一个匹配项 ``` 2. **替换**: ```vim :s/old/new # 替换当前行第一个匹配 :%s/old/new/g # 全局替换所有匹配 ``` #### 六、配置管理 - **临时配置**(命令行模式下输入生效): ```vim :set number # 显示行号 [^4] ``` - **永久配置**: 修改 `~/.vimrc` 文件(示例配置): ```vim syntax on # 启用语法高亮 set tabstop=4 # 设置缩进为4空格 [^4] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值