Win11系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境

简介: 众神殿内,依次坐着Editplus、Atom、Sublime、Vscode、JetBrains家族、Comodo等等一众编辑器界的大佬们,偌大的殿堂内几无立锥之地,然而在殿内的金漆雕龙宝座上,端坐着一位睥睨众生的王者,那就是被称之为编辑器之神的Vim,作为一个有着30余年历史的老牌神器,没有任何编辑器可以和它媲美,其时江湖有云:神编Vim不会玩,纵称大神也枉然。Vim在 1976 年发布,奉行 Unix 传统的“Do one thing and do it well”哲学,每个程序只做一件事但求做到最好,通过程序之间的配合得到强大的功能,其两种模式(Normal/Insert) 的玄妙变换,幻

众神殿内,依次坐着Editplus、Atom、Sublime、Vscode、JetBrains家族、Comodo等等一众编辑器界的大佬们,偌大的殿堂内几无立锥之地,然而在殿内的金漆雕龙宝座上,端坐着一位睥睨众生的王者,那就是被称之为编辑器之神的Vim,作为一个有着30余年历史的老牌神器,没有任何编辑器可以和它媲美,其时江湖有云:神编Vim不会玩,纵称大神也枉然。Vim在 1976 年发布,奉行 Unix 传统的“Do one thing and do it well”哲学,每个程序只做一件事但求做到最好,通过程序之间的配合得到强大的功能,其两种模式(Normal/Insert) 的玄妙变换,幻化出各种组合的炫酷用法,不知倾倒了多少开发者的心。本次我们在Win10平台构建一套以Vim为核心的Python开发环境。

首先,安装python3,并且配置好环境变量。

随后下载gvim8,注意根据系统类型选择32或者64位,这里我们选择64位的,下载地址是:https://tuxproject.de/projects/vim/x64/

然后,将下载好的压缩包解压,并且将文件放到C:/vim目录下

顺便配置好环境变量,这样就可以在系统任意位置启动vim

之后在当前的用户目录,建立一个\_vimrc文件,这是vim的配置文件,所有的设置都在这里编写

将以下内容添加到\_vimrc文件中

" An example for a vimrc file.  
"  
" Maintainer:    Bram Moolenaar <Bram@vim.org>  
" Last change:    2019 Dec 17  
"  
" To use it, copy it to  
"           for Unix:  ~/.vimrc  
"          for Amiga:  s:.vimrc  
"     for MS-Windows:  $VIM_vimrc  
"          for Haiku:  ~/config/settings/vim/vimrc  
"        for OpenVMS:  sys$login:.vimrc  
  
" When started as "evim", evim.vim will already have done these settings, bail  
" out.  
if v:progname =~? "evim"  
  finish  
endif  
  
" Get the defaults that most users want.  
source $VIMRUNTIME/defaults.vim  
  
if has("vms")  
  set nobackup        " do not keep a backup file, use versions instead  
else  
  set backup        " keep a backup file (restore to previous version)  
  if has('persistent_undo')  
    set undofile    " keep an undo file (undo changes after closing)  
  endif  
endif  
  
if &t_Co > 2 || has("gui_running")  
  " Switch on highlighting the last used search pattern.  
  set hlsearch  
endif  
  
" Put these in an autocmd group, so that we can delete them easily.  
augroup vimrcEx  
  au!  
  
  " For all text files set 'textwidth' to 78 characters.  
  autocmd FileType text setlocal textwidth=78  
augroup END  
  
" Add optional packages.  
"  
" The matchit plugin makes the % command work better, but it is not backwards  
" compatible.  
" The ! means the package won't be loaded right away but when plugins are  
" loaded during initialization.  
if has('syntax') && has('eval')  
  packadd! matchit  
endif  
  

set enc=utf-8  
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936

  
set autoindent  
set nu!  
set shiftwidth=4  
  
source $VIMRUNTIME/delmenu.vim  
source $VIMRUNTIME/menu.vim  
  
language messages zh_CN.utf-8  
  
colo koehler  
set guifont=monaco:h11:cANSI  
  
set ts=4  
set expandtab

set guifont=Courier_New:h14:cANSI   
colorscheme murphy 

map <F5> :! python.exe %
AI 代码解读

这些都是一些最基本的配置,比如设置编码解决中文乱码问题、自动缩进以及缩进宽度、菜单栏中文字体问题、主题和字体、以及四个空格代替制表符等等,注意一点这个配置里我将运行python脚本的快捷键设置成了f5。

这时进入windows命令行,输入gvim启动编辑器,然后键入命令:version,看到版本号就没有问题了

虽然现在Vim已经可以正常使用了,但是没有插件的加成,开发效率就不是那么高,所以我们现在来安装一些常用的插件。

安装pathogen.vim插件(一个vim插件管理器)

地址是:https://github.com/tpope/vim-pathogen 直接Clone或者下载压缩包

将Clone或者解压后的pathogen.vim文件放到C:/vim/autoload目录下

修改用户目录下的\_vimrc配置文件,将下面的配置加进去

execute pathogen#infect() 
AI 代码解读

这样就可以安装其他所有的插件了

紧接着我们安装一个项目管理插件(project),它可以帮助我们把项目整体导入vim编辑器内,通过点击文件进行修改,这样就不用每次编辑都要在命令行输入命令才能编辑了,大体上,这个插件可以帮我们快速修改整个项目。

同样的,先进行下载,地址是:https://www.vim.org/scripts/script.php?script\_id=69

将解压后的doc目录中的project文件拷贝到vim安装目录的doc目录下

将plugin目录下的project.vim拷贝到vim安装目录的plugin目录下

在命令行输入gvim启动编辑器

输入:Project

随后输入\C (是反斜杠和大写C,因为是输入命令,所以不会在编辑内显示,但是执行成功后会弹出窗口)

Enter the Name of the Entry: 输入项目名

Enter the Absolute Directory to Load: 输入项目的文件目录路径(项目目录需要事先存在)

Enter the CD parameter: 这个和项目目录路径一样即可

Enter the File Filter: 设置管理的文件类型,*.py,*.txt等等,可以设置多个,不设置(直接回车)默认为所有类型

再次使用:打开vim后输入:Project
使用回车打开或关闭标签。
添加或者修改文件后可以使用\R进行刷新项目。

这样我们就可以在vim里管理我们的项目了。

每次导入项目后,你都可以在用户目录的.vimprojects文件中进行修改或者删除项目,非常灵活

好了,项目导入后就可以愉快的开发了,但是我们发现vim默认没有代码补全,怎么办呢,聪明如你一定已经猜到可以用插件搞定,使用pydiction,下载地址:https://github.com/rkulla/pydiction

Clone或者下载压缩包之后,发现里面有after文件夹、complete-dict、pydiction.py

将after里面的python\_pydiction.vim文件拷贝到 vim安装目录下的ftpplugin里面,将complete-dict、pydiction.py 拷贝到ftpplugin目录下。

随后在\_vimrc里面添加

filetype plugin on  
let g:pydiction_location='c:/vim/ftplugin/complete-dict'  
let g:pydiction_menu_height = 3
AI 代码解读

这就搞定了,使用方法是,敲入两个字母之后使用tab键进行补全,效果是下面这样:

还不错吧,有的时候,你甚至想用vim来编辑前端的页面,没有任何问题,使用autocomplpop插件,下载地址:https://github.com/vim-scripts/AutoComplPop

解压后,将plugin下的脚本文件(.vim)、doc下的帮助文件(.txt)和autoload下的(.vim)文件分别拷贝至vim的 plugin、doc和autoload目录

这个插件甚至不需要配置,只需要在输入/insert模式下即可自动根据当前文档内的内容进行自动补全

是不是感觉还不错?有了那么一点黑客的赶脚了。

Vim 有两种模式——Normal 模式和 Insert 模,所有命令都是在 Normal 模式下执行。启动 Vim 后,默认进入 Normal 模式,可以按 i 键进入 Insert 模式,或者 s 删除当前字符并进入 Insert 模式,退出 Insert 模式进入 Normal 按 ESC 。

基本用法:



i insert 输入

v 行选中

ctrl+v 列选中

G 至文末  
gg 至文首  
:q 未修改退出  
:q! 强制不保存退出  
:x / :wq 保存并退出  
J 合并多行  
d 删除当前所选  
dd 删除多行并存在剪贴板中(剪切)  
y 复制当前所选  
yy 复制整行  
p 粘贴  
u 撤销操作  
w 光标移动到下一个单词处  
b 光标移动到上一个单词处  
^ 光标移动到行首  
$ 光标移动到行尾  
kjhl 或者上下左右键移动光标  
shift+上下键 翻页  
shift+左右 光标乙至上/下一个单词(以空格/标点区分单词)词首  
u 撤销上一步操作  
zo/zn/zc 折叠/展开代码块  
:vsp 新建工作区  
ctrl+w 松手后再按 方向键 切换工作区  
:MR 选择最近打开的文件(需安装插件)  
F12 运行当前文件  
# 搜索光标处短语  
:set paste 进入粘贴模式  
:%s/target/something/g 替换全部 target 字段  
:s/target/something/g 替换选中区域 target 字段
AI 代码解读

参考命令图解

结语:遥想当年,Windows平台用户对软件的可扩展性完全没有概念,他们只能对他们使用的软件进行非常有限的定制(普通版/家庭版/专业版)。扩展软件的权利也保留在开发者手中。软件的使用者如果想要新的功能和特性,只能等待软件的升级或者花钱买。有能力的用户不想被束缚,为了添加自己想要的功能,自己写新的功能。就这样,新的功能意味着新的软件,Windows平台的软件前赴后继,迅速地更新换代。因此,Windows平台就如铁打的营盘,而那些软件就像流水的兵,循环往复。

现而今,Mac os和开源软件渐渐流行起来,此时的人们才发现:可扩展性才是软件的核心竞争力。在JetBrains横行的今天,Vscode为什么被评为最好的IDE?就是因为它在IDE中最具可扩展性。同理,将近30多年的历史浪潮中Vim没有被时代淘汰,反而愈发健壮,拥趸遍布全世界,也正是因为在数不清的编辑器中,Vim具有无可匹敌的可扩展性,当然了,这个世界除了编辑器之神,还有另外一种信仰:Emacs,它的教徒丝毫不少于Vim,它的影响力已经是超越编辑器的存在,有机会再分享关于Emacs的传说。

目录
打赏
0
0
0
0
1681
分享
相关文章
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
88 4
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
python安装、vscode安装、conda安装:一文搞定Python的开发环境(史上最全)
尼恩架构团队推出了一系列《LLM大模型学习圣经》PDF,旨在帮助读者深入理解并掌握大型语言模型(LLM)及其相关技术。该系列包括Python基础、Transformer架构、LangChain框架、RAG架构及LLM智能体等内容,覆盖从理论到实践的各个方面。此外,尼恩还提供了配套视频教程,计划于2025年5月前发布,助力更多人成为大模型应用架构师,冲击年薪百万目标。
Chainlit:一个开源的异步Python框架,快速构建生产级对话式 AI 应用
Chainlit 是一个开源的异步 Python 框架,帮助开发者在几分钟内构建可扩展的对话式 AI 或代理应用,支持多种工具和服务集成。
40 9
轻松搞定在Python中构建虚拟环境
本教程教你如何使用业界公认的最佳实践,创建一个完全工作的Python开发环境。虚拟环境通过隔离依赖项,避免项目间的冲突,并允许你轻松管理包版本。我们将使用Python 3的内置`venv`模块来创建和激活虚拟环境,确保不同项目能独立运行,不会相互干扰。此外,还将介绍如何检查Python版本、激活和停用虚拟环境,以及使用`requirements.txt`文件共享依赖项。 通过本教程,你将学会: - 创建和管理虚拟环境 - 避免依赖性冲突 - 部署Python应用到服务器 适合新手和希望提升开发环境管理能力的开发者。
基于Python深度学习果蔬识别系统实现
本项目基于Python和TensorFlow,使用ResNet卷积神经网络模型,对12种常见果蔬(如土豆、苹果等)的图像数据集进行训练,构建了一个高精度的果蔬识别系统。系统通过Django框架搭建Web端可视化界面,用户可上传图片并自动识别果蔬种类。该项目旨在提高农业生产效率,广泛应用于食品安全、智能农业等领域。CNN凭借其强大的特征提取能力,在图像分类任务中表现出色,为实现高效的自动化果蔬识别提供了技术支持。
基于Python深度学习果蔬识别系统实现
|
25天前
|
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
29 3
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
122 80
|
5天前
|
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
37 5
Python高性能编程:五种核心优化技术的原理与Python代码

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等