恩,这两天在看《简明Python教程》,那里面作者建议写代码的时候前面的注释写上文件名,写上调用的解释器,比如这样:

  恩,然后我当然不可能每回新建一个文件,就要在开头写上一大串东西啊,vim这样的神器肯定有简单的办法啊,我通过修改我的vimrc文件,添加了如下代码:

 autocmd BufNewFile *.py exec ":call SetTitle()"
func SetTitle()
if &filetype == "python"
call setline(,"#!/usr/bin/env python")
call setline(,"# -* - coding: UTF-8 -* -")
call setline(,"#Filename:")
endif
endfunc

  这段代码很简单,就是在vim新建文件的时候检查文件类型(通过后缀名),然后如果文件类型是python文件的话,就调用SetTitle函数,然后这个函数就在新建文件的前三行添加上如下内容:

  

  (第二行的注释将当前代码的编码设置为UTF-8,这样这个python代码里面就能写中文了^ o ^)!

  恩,理论上,vim应该有一个变量存储了文件名,然后可以直接在setline语句(6行)中设置上文件名,可是我现在还没找到,如果哪位知道,还望不吝赐教!

  那么,现在我们新建了一个文件,可是在那条Filename注释后面文件名却是空的,那该怎么添加呢?原来我一直不知道怎么快捷添加,一直都是自己动手敲,然后始终感觉这不是vim的感觉啊!然后今天才弱弱地发现原来vim的自动补全还有文件名补全这个快捷键,然后真的是如获至宝啊!

  废话少扯,具体怎么来呢,就是这个

<C-x><C-f>

  上面那行的意思是先按Ctrl+x,然后再按Ctrl+f,这样就会弹出文件名的下拉列表(就是当前工作目录下的所有文件名),比如这样:

  我当前目录下有两个文件,hello.py和world.py,然后我在hello.py中进入插入模式,按下<C-x><C-f>之后就会出现这种情况:

  然后我再来通过这两个按键

<C-p>    //Ctrl+p,选择上一个
<C-n> //Ctrl+n,选择下一个

  这样就能快速写上文件名了!^ _ ^

VIM小技巧之文件名补全的更多相关文章

  1. 用Visual Studio编写UDF的一点小技巧(自动补全宏函数、变量)

    下载Visual Studio,安装VS 下载番茄助手(Visual Assist X),链接:www.wholetomato.com,然后安装番茄助手 打开VS

  2. vim基础学习之自动补全功能

    本章我们学习自动补全功能1.自动补全优先从当前的编辑区获得补全列表例如:我们写下如下内容 aaaaa aabbb aaab 当我们再次输入aa,然后我们按下Tab的时候,会弹出一个包含 aaaaa a ...

  3. Netbeans源代码编辑技巧——使用代码补全和代码生成

    原文 Netbeans源代码编辑技巧——使用代码补全和代码生成 使用代码补全生成代码 一般来说,代码补全对于自动填充缺失的代码是有帮助的,例如标识符和关键字.截至 NetBeans IDE 6.0,您 ...

  4. 基于linux vim环境python代码自动补全

    (一)简述 在使用vim编写python文件的过程中,默认的vim不会实现代码补全功能,在写程序或者是改程序的时候不是很方面,很容易出错,但是vim提供了各种插件,其中包括这个python文件的自动补 ...

  5. Mac OS X 中vim开启配色和git补全

    问题起源:mac 下自带的git 无法补全命令,配色方案不完善 Mac OS Yosemite 10.10.3 git version 2.3.2 (Apple Git-55) 处理结果:git命令可 ...

  6. vim中设置Python自动补全

    转自:http://blog.csdn.net/wangzhuo_0717/article/details/6942428 在VIM里面增加python的autocomplete功能的做法如下: 1. ...

  7. [转载]启用 VIM 中的 Python 自动补全及提示功能

    转载: http://zhongwei-leg.iteye.com/blog/941474 周围的同事不喜欢使用 VIM 写 Python 代码的原因之一就是,VIM 不能像 Visual Studi ...

  8. 9. VIM 系列 - YouCompleteMe 实现代码补全

    目录 环境准备 插件安装 环境准备 $ sudo apt install build-essential cmake python3-dev python-dev $ sudo apt install ...

  9. 在vim编辑器python实现tab补全功能

    在vim编辑器中实现python tab补全插件有Pydiction,Pydiction可以实现下面python代码的自动补全: 1. 简单python关键词补全 2. python函数补全带括号 3 ...

随机推荐

  1. 记录一下bing的图片 - 升级版冰糖葫芦

    记录一下bing的图片 - 升级版冰糖葫芦

  2. Asynctask的使用及理解

    1.对于耗时的操作,我们的一般方法是开启“子线程”.如果需要更新UI,则需要使用handler 2.如果耗时的操作太多,那么我们需要开启太多的子线程,这就会给系统带来巨大的负担,随之也会带来性能方面的 ...

  3. spring mvc 接收页面表单List

    很少写博客,如果写的不好请多多包涵! 最近在用Spring mvc时遇到一个问题,在网上搜了很多资料.几乎没看到解决办法! 例如:当我们在做批量添加或者更新时,在Controller层接收表单数据的问 ...

  4. 问题集-- SQL 约束名不能重复

    今天看书整理笔记的时候,无意发现一个问题,记录下来: 前段时间做练习曾经创建过一个tbl_student的表,         create table tbl_student(            ...

  5. .net重启iis线程池和iis站点程序代码分享

    重启站点: /// <summary> /// 根据名字重启站点.(没重启线程池) /// </summary> /// <param name="sitena ...

  6. 【开源项目4】Android ExpandableListView

    如果你对Android提供的Android ExpandableListView并不满意,一心想要实现诸如Spotify应用那般的效果,那么SlideExpandableListView绝对是你最好的 ...

  7. 【原创】C++链表如何像Python List一样支持多种数据类型

    用过Python的码友都知道,Python中List支持多种数据类型,如下面代码所示链表li内的数据类型可以是整数,同时也可以是字符串,当然也可以是其他数据类型. 1: >>> li ...

  8. Oracle基础 数据泵导出/导入Expdp/impdp(转)

    一.EXPDP和IMPDP使用说明 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1)实现逻辑备份和逻辑恢复. 2 ...

  9. C++构造/析构/赋值函数

    在编写C++程序的时候,我们会为特定某一类对象申明类类型,几乎我们申明的每一个class都会有一个或多个构造函数.一个析构函数.一个赋值运算符重载=.以及拷贝构造函数.这些函数控制着类对象的基础操作, ...

  10. oracle数据操纵语言(DML)data manipulation language(续集)

    SQL查询语句(SELECT)进阶分组函数(Group Functions):对多行进行操作,并为每一组给出一个结果. AVG([DISTINCT|ALL] expression) 平均值COUNT ...