热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

编译VIM

编译VIM最麻烦的只有一个问题:各个语言的位置和开发库的位置。注意:语言本身的位置好说,但是dev开发库就不一样了。比如,一

编译VIM最麻烦的只有一个问题:
各个语言的位置和开发库的位置

注意:语言本身的位置好说,但是dev开发库就不一样了。
比如,一般我们本机只安装python,而不会安装python-dev。这是两个完全不一样的概念。第一个我们直接使用的语言,第二个是本机编译、开发能够引用的开发lib库。
所以,根据语言支持的需要,我们要安装这些开发库:

  • python-dev
  • python3-dev
  • ruby-dev
  • perl-dev
  • lua-dev
  • libncurses5-dev

如果安装好这些依赖,且明白各自的位置后,剩下的VIM编译是超级简单的。
如果编译出现问题,也绝对是这些位置出现了问题。

树莓派编译VIM包括Python/Lua/Ruby/Perl支持

# 下载源码
cd /tmp
wget https://github.com/vim/vim/archive/v8.1.0561.tar.gz
tar -xzvf v8.1.0561.tar.gz
cd vim-8.1.0561# 下载语言支持的开发库(和本机的各种语言使用无关)
sudo apt-get install -y libncurses5-dev liblua5.3-dev libperl-dev python-dev python3-dev ruby-dev# 定义各个语言的开发库位置# 修复lua位置
sudo mv $(which lua) "$(which lua)_old"
sudo ln -s /usr/bin/lua5.3 /usr/bin/lua
sudo ln -s /usr/include/lua5.3 /usr/include/lua
sudo ln -s /usr/lib/arm-linux-gnueabihf/liblua5.3.so /usr/local/lib/liblua.so# 修复python位置
sudo ln -s /usr/lib/python2.7/config-arm-linux-gnueabihf /usr/lib/python2.7/config
sudo ln -s /usr/lib/python3.4/config-3.4m-arm-linux-gnueabihf /usr/lib/python3.4/config# Build
./configure \--prefix=/opt/vim-8.1 \--enable-gui=auto \--enable-luainterp \--enable-python3interp \--enable-pythoninterp=dynamic \--enable-perlinterp=dynamic \--enable-rubyinterp=dynamic \--enable-cscope \--enable-multibyte \--enable-fontset \--enable-largefile \--enable-fail-if-missing \--with-features=huge \--with-python-config-dir=/usr/lib/python2.7/config \--with-python3-config-dir=/usr/lib/python3.4/config \--disable-netbeans && \echo '[ OK ]'make && sudo make install && echo '[ OK ]'# 将旧版本的vim替换
sudo mv $(which vim) "$(which vim)_old"
sudo ln -s /opt/vim-8.1/bin/vim /usr/bin/vim

Mac编译VIM包括Python/Lua/Ruby/Perl支持

# Download
cd /tmp
wget https://github.com/vim/vim/archive/v8.1.0561.tar.gz
tar -xzvf v8.1.0561.tar.gz
cd vim-8.1.0561# Build
./configure \
--prefix=/opt/vim-8.1 \
--enable-multibyte \
--enable-perlinterp=dynamic \
--enable-rubyinterp=dynamic \
--with-ruby-command=/usr/local/bin/ruby \
--enable-pythoninterp=dynamic \
--with-python-config-dir=/usr/lib/python2.7/config \
--enable-python3interp \
--with-python3-config-dir=/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin \
--enable-luainterp \
--with-lua-prefix=/usr/local/Cellar/lua/5.3.5_1 \
--enable-cscope \
--enable-gui=auto \
--with-features=huge \
--enable-fontset \
--enable-largefile \
--disable-netbeans \
--enable-fail-if-missing && \
echo '[ OK ]'make && sudo make install && echo '[ OK ]'

如果本机没有lua的话:

brew install lua

然后仔细查看lua路径,一般是/usr/local/Cellar/lua*,把它替换到configure的参数中去。

如果Python没有配置好的话,则到/usr/local/Cellar/python目录下搜索config-*文件:

find /usr/local/Cellar/python -name "config-*"

然后我得到的是/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin。把它替换到configure的参数中相应位置。



推荐阅读
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 本文深入探讨了使用Puppet进行软件包分发与管理的方法。首先介绍了fpm这一跨平台的软件包制作工具,其简便的操作流程使得软件包的创建变得轻松快捷。fpm的项目地址为:https://github.com/jordansissel/fpm。通过结合Puppet和fpm,可以实现高效、可靠的软件包管理和部署。 ... [详细]
  • 基于Linux开源VOIP系统LinPhone[四]
    ****************************************************************************************** ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 本文深入解析了 FCEUX 源码,并详细介绍了两种制作 DEB 包的方法及其技术细节。首先,DEB 包通常由两部分组成:控制信息(位于 DEBIAN 目录)和安装内容(模拟目录)。通过解压现有的 DEB 包,可以查看其内部结构,进而理解其工作原理。具体操作包括将安装内容释放到指定目录中,以便进行进一步的修改和定制。此外,文章还探讨了如何修改现有的 DEB 包,以满足特定需求,提供了实用的步骤和技巧。 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 在安装 iOS 开发所需的 CocoaPods 时,用户可能会遇到多种问题。其中一个常见问题是,在执行 `pod setup` 命令后,系统无法连接到 GitHub 以更新 CocoaPods/Specs 仓库。这可能是由于网络连接不稳定、GitHub 服务器暂时不可用或本地配置错误等原因导致。为解决此问题,建议检查网络连接、确保 GitHub API 限制未被触发,并验证本地配置文件是否正确。 ... [详细]
  • 在CentOS上部署并使用FFmpeg多媒体处理工具
    最近在进行音频处理时需要用到FFmpeg,本文将详细介绍如何在CentOS系统上部署并使用这一强大的多媒体处理工具。首先,从官方网站下载FFmpeg的最新版本,然后通过Xftp工具将下载的压缩包(如ffmpeg-4.3.1.tar.xz)传输到服务器上。接下来,解压文件并按照官方文档进行编译安装。安装完成后,可以通过命令行工具验证FFmpeg是否成功安装,并开始进行多媒体文件的转换和处理。此外,文章还将介绍一些常用的FFmpeg命令和参数,帮助用户快速上手。 ... [详细]
  • 单元测试:使用mocha和should.js搭建nodejs的单元测试
    2019独角兽企业重金招聘Python工程师标准BDD测试利器:mochashould.js众所周知对于任何一个项目来说,做好单元测试都是必不可少 ... [详细]
  • 本文介绍了Java中的com.sun.codemodel.JBlock._continue()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文详细介绍了在 Android 7.1 系统中调整屏幕分辨率和默认音量设置的方法。针对系统默认音量过大的问题,提供了具体的步骤来降低系统、铃声、媒体和闹钟的默认音量,以提升用户体验。此外,还涵盖了如何通过系统设置或使用第三方工具来优化屏幕分辨率,确保设备显示效果更加清晰和流畅。 ... [详细]
author-avatar
仔仔衰才_887
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有