开发者社区> harrylee007> 正文

vim基本配置

简介: vim基本配置:包括tab键替换成4个空格 Edit Vim configuration file ".vimrc" in your HOME directory, add below lines: set et se...
+关注继续查看

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>



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Vim的行号、语法显示等设置(.vimrc文件的配置)以及乱码解决
在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号、语法高亮度显示、智能缩进 等功能的。为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc。在启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置甚至脚本, 所以,一般情况下把.vimrc文件创建在当前用户的根目录下比较方便,即创建的命令为:$vi ~/.vimrc #支持putty鼠标粘贴 if has('mouse')    set mouse -= a endif 设置完后$:x 或者 $wq 进行保存退出即可。
1122 0
Gvim开发环境配置笔记--Windows篇
环境:Windows7 旗舰版 1、安装Gvim7.3 : 下载地址http://www.vim.org/download.php#pc。
917 0
【OkHttp】Android 项目导入 OkHttp ( 配置依赖 | 配置 networkSecurityConfig | 配置 ViewBinding | 代码示例 )(一)
【OkHttp】Android 项目导入 OkHttp ( 配置依赖 | 配置 networkSecurityConfig | 配置 ViewBinding | 代码示例 )(一)
154 0
+关注
54
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载