vim基本配置

简介: vim基本配置:包括tab键替换成4个空格Edit Vim configuration file ".vimrc" in your HOME directory, add below lines:set etse...

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>



目录
相关文章
|
开发工具
|
6月前
|
人工智能 Linux 开发工具
linux 对文件内容的查看、归档 及 vim基本操作
linux 对文件内容的查看、归档 及 vim基本操作
|
3月前
|
Unix Linux 开发工具
在Linux中,有哪些基本的 Vim 命令?
在Linux中,有哪些基本的 Vim 命令?
|
23天前
|
Unix Linux 开发工具
Linux Vim的 命令大全
Linux Vim的 命令大全
16 0
|
2月前
|
存储 Linux Shell
常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件
这篇文章介绍了Vim编辑器的基本使用、常用命令和模式,以及Linux系统中用户和组的管理方法,包括用户和组相关文件如/etc/passwd、/etc/shadow和/etc/group的说明。
常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件
|
2月前
|
存储 Linux 编译器
linux中vim介绍以及常用命令大全
linux中vim介绍以及常用命令大全
75 8
|
6月前
|
小程序 Linux 开发工具
【Linux】Linux 开发工具(vim、gcc/g++、make/Makefile)+【小程序:进度条】-- 详解
【Linux】Linux 开发工具(vim、gcc/g++、make/Makefile)+【小程序:进度条】-- 详解
|
5月前
|
Linux Shell 持续交付
Linux下vim的配置
本文介绍了如何对vim进行基础配置,如行号显示、缩进设置等,并推荐了一种自动化部署方案,通过链接下载预配置的vim环境脚本,简化了配置过程,提升开发效率。
82 3
Linux下vim的配置
|
4月前
|
Linux Shell 开发工具
Linux Vim批量注释和自定义注释
在Vim中,快速批量注释和取消Shell脚本的多行可以使用替换命令。例如,用`:1,10s/^/#/g`在第1到10行行首加`#`注释,`:1,10s/^#//g`则移除这些行的行首`#`。定义快捷键如`:map^P l#&lt;Esc&gt;`(需用Ctrl+V+P生成^P)能一键在当前行添加`#`注释。要取消注释,可以定义`:map^B 0x`来删除行首字符。通过`.vimrc`保存快捷键设置,可使它们在每次启动Vim时生效。
|
4月前
|
Ubuntu Unix Linux
Linux Vim最全面的教程
Linux Vim最全面的教程

相关实验场景

更多