如何使用Vim搭建Lua开发环境详解

前言

SpaceVim 是一个模块化的 Vim IDE,针对 lua 这一语言的支持主要依靠 lang#lua 模块以及与之相关的其它模块。 的这篇文章主要介绍如何使用 SpaceVim 搭建 lua 的开发环境,侧重介绍跟 lua 开发相关使用技巧。 在阅读这篇文章之前,可以先来看看使用 Vim 搭建基础的开发环境,对语言相关以外的功能有一个大致的了解。

使用 Vim 搭建基本开发环境

主要介绍如何使用 SpaceVim 搭建基础的开发环境

安装

在入门指南里,介绍了不同系统安装 SpaceVim 的步骤。在安装过程中还是存在一些问题,比如颜色主题看上去和官网不一致,出现各种字体乱码。 安装 SpaceVim 最理想的环境是 neovim + nerdfont + 一个支持真色的终端模拟器。

  • neovim:建议查阅其wiki,获取安装步骤
  • nerdfont: Linux 或 Mac 下 SpaceVim 安装脚本会自动下载字体,windows 用户需要自行下载 nerd 字体并安装
  • 一款支持真色的终端,如果不能启用真色,可以在配置文件里禁用 SpaceVim 真色:
 [options]
   enable_guicolors = false

基本配置

SpaceVim 的配置文件有两种,一种是全局配置文件,另外一种是项目专属配置文件。我们可以这样理解,在全局配置文件里,主要设置一些常规的选项和模块, 比如 shell 模块、tags 模块。项目专属配置文件则通常用来配置跟当前项目相关的模块及选项,比如对于 python 项目,可以在项目专属配置文件里启用 lang#python 模块。

这样操作的好处在于,当处理多个不同语言项目是,不需要频繁更新配置文件,也不用担心载入过多的冗余插件,和无关的语言模块。

基本使用

首先,需要了解下 SpaceVim 启动后几个界面元素:顶部标签栏、底部状态栏。可以看到,标签栏通常只有一个,主要用来列出已经打开的文件或者是标签页。

文件及窗口操作

SpaceVim 会在状态栏展示各个窗口的编号,可以使用快捷键 SPC + 数字 快速跳到对应的窗口,在顶部标签了,会列出当前已经打开的文件或者标签裂变, 可以使用快捷键 Leader + 数字 快速跳到对应的文件。在这里默认的 Leader 是 \ 键。

安装模块

SpaceVim 初次安装时默认并未启用相关语言模块。首先需要启用 lang#lua 模块, 通过快捷键 SPC f v d 打开配置文件,添加:

[[layers]]
 name = "lang#lua"

启用 lang#lua 模块后,在打开 lua 文件时,就可以使用语言专属快捷键,这些快捷键都是以 SPC l 为前缀的。

代码自动补全

autocomplete 模块为 SpaceVim 提供了自动补全功能, 该模块会根据当前环境自动在多种补全引擎之间选择合适的, 默认的补全引擎有:deoplete、neocomplete、ycm、asyncomplete 以及 neocomplcache。 几种自动补全引擎当中,要数 deoplete 的体验效果最好。

语法检查

checkers 模块为 SpaceVim 提供了语法检查的功能,该模块默认已经载入。该模块默认使用 neomake 这一异步语法检查工具。对于 luac 的支持,是通过异步调用 luac 命令来完成的。

工程文件跳转

SpaceVim 自带工程管理插件,可以识别项目根目录,自动跳转alternate文件。

快速运行

在编辑 lua 文件时,可以快速运行当前文件,这个功能有点类似于 vscode 的 code runner 插件,默认的快捷键是 SPC l r。按下后, 会在屏幕下方打开一个插件窗口,运行的结果会被展示在窗口内。于此同时,光标并不会跳到该插件窗口,避免影响编辑。在这里需要说明下, 这一功能是根据当前文件的路径调用相对应的 lua 命令。因此,在执行这个快捷键之前,应当先保存一下该文件。

代码格式化

lua 代码格式化,主要依赖 format 模块,同时需要安装相关的后台命令 luaformatter:

[[layers]]
 name = "format"

安装 luaformatter:

luarocks install formatter

交互式编程

在编辑 lua 文件时,可通过快捷键 SPC l s i 启动 lua -i 交互窗口,之后使用快捷键将代码发送至解释器。默认快捷键都以 SPC l s 为前缀。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

(0)

相关推荐

  • Lua的函数环境、包实例讲解

    复制代码 代码如下: function foo()    print(g or "No g defined!") end foo() setfenv(foo, { g = 100, print = print }) --设置foo的环境为表{ g=100, ...} foo() print(g or "No g defined!") --No g defined! --100 --No g defined! 定义:函数环境就是函数在执行时所见的全局变量的集合,以一个

  • Lua在windows下的安装及环境配置

    环境:luafor windows (lfW) 主页:http://luaforwindows.luaforge.net/ lua for windows其实是一整套Lua的开发环境,它包括: Lua Interpreter(Lua解释器) Lua Reference Manual(Lua参考手册) Quick Lua Tour (Lua快速入门) Examples (Lua范例) Libraries with documentation (一些Lua库和文档) SciTE (一个很棒的多用途编

  • Lua在各个操作系统中的开发环境配置教程

     Lua开发环境设置 如果愿意设置您的Lua编程语言环境中,需要用计算机上的以下两个软件,(a)文字编辑器,(b)Lua解释,以及(c)Lua编译器. 文本编辑器 这将被用来输入编写程序.一些编辑器包括Windows记事本,操作系统Edit命令,Brief,Epsilon,Emacs和VIM或VI. 文本编辑器名称和版本可以在不同的操作系统上.例如,记事本可用Windows上,vim或者vi可以在Windows以及Linux或UNIX上使用. 编辑器创建文件称为源文件和包含程序的源代码.在Lua

  • 解决nginx+lua搭建文件上传下载服务问题

    导语 项目需要做一个文件上传下载服务,利用 nginx+lua 做一个代理服务,上传入口统一,分发到不同的机器存储,下载链接和物理存储隔离,支持添加 agent 的方式扩容,这里主要讲一下思路和搭建配置过程,大神勿喷. 主要逻辑 上传 前端请求 nginx 服务, nginx 调用 upload 脚本,脚本通过查找配置,找到对应的逻辑存储路径和物理存储机器的 agent 的 ip 和端口,通过 tcp 发包到对应 agent ,部署在对应机器的 agent 接受数据,并写到本地文件. 下载 ht

  • linux系统安装Nginx Lua环境

    亦可参考官方安装指南: lua-nginx-module Installation 这是我总结的安装,供参考: 需要最新版的Nginx,LuaJIT,ngx_devel_kit,lua-nginx-module等安装文件: Nginx LuaJIT Lua或者LuaJIT都是可以的,但是出于性能的考虑,推荐安装LuaJIT ngx_devel_kit lua-nginx-module 参考命令下载: $ curl -O http://nginx.org/download/nginx-1.10.1

  • 解析Lua中的全局环境、包、模块组织结构

    模块就是一个程序库,而包是一系列模块.Lua中可以通过require来加载模块,然后得到一个全局变量表示一个table.Lua将其所有的全局变量保存在一个被称为"环境"的常规table中.本文首先介绍环境的一些实用技术,然后介绍如何引用模块及编写模块的基本方法. 1. 环境 Lua将环境table保存在一个全局变量_G中,可以对其访问和设置.有时我们想操作一个全局变量,而它的名称却存储在另一个变量中,或者需要通过运行时的计算才能得到,可以通过value = _G[varname]来获得

  • Mac平台中编译安装Lua运行环境及Hello Lua实例

    1.下载Lua安装包 下载地址:http://www.lua.org/download.html,目前最新的Lua是5.2.3.解压得到doc.src.Makefile.README共4个文件. 2.编译Lua环境 1)控制台下cd  Lua解压路径. 2)执行make  平台,我是Mac,所以执行make macosx: 3)在src中生成lua和luac两个可执行文件,这两个文件可以单独拿出来,比如我们在Lua解压路径下创建bin目录,将生成的可执行文件放进去. 3.Hello Lua 1)

  • 安装Nginx+Lua开发环境

    首先我们选择使用OpenResty,其是由Nginx核心加很多第三方模块组成,其最大的亮点是默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用.借助于Nginx的事件驱动模型和非阻塞IO,可以实现高性能的Web应用程序.而且OpenResty提供了大量组件如Mysql.Redis.Memcached等等,使在Nginx上开发Web应用更方便更简单.目前在京东如实时价格.秒杀.动态服务.单品页.列表页等都在使用Nginx+Lua架构,其他公司如淘宝.去哪儿网等. 安装环境

  • 如何使用Vim搭建Lua开发环境详解

    前言 SpaceVim 是一个模块化的 Vim IDE,针对 lua 这一语言的支持主要依靠 lang#lua 模块以及与之相关的其它模块. 的这篇文章主要介绍如何使用 SpaceVim 搭建 lua 的开发环境,侧重介绍跟 lua 开发相关使用技巧. 在阅读这篇文章之前,可以先来看看使用 Vim 搭建基础的开发环境,对语言相关以外的功能有一个大致的了解. 使用 Vim 搭建基本开发环境 主要介绍如何使用 SpaceVim 搭建基础的开发环境 安装 在入门指南里,介绍了不同系统安装 SpaceV

  • 基于Python_脚本CGI、特点、应用、开发环境(详解)

    CGI CGI 目前由NCSA维护,NCSA定义CGI如下: CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口. CGI程序可以是Python脚本.Perl脚本.Shell脚本.C或者C++程序等. 服务器 在你进行CGI编程前,确保您的Web服务器支持CGI及已经配置了CGI的处理程序. 所有的HTTP服务器执行CGI程序都保存在一个预先配置的目录.这个目录被称为CGI目录,并按照惯例,它被

  • webpack 2.x配置reactjs基本开发环境详解

    本文介绍了webpack 2.x配置reactjs基本开发环境详解,分享给大家,具体如下: 当前webpack版本:2.2:react: 15.4.2 webpack从1.x升级到2.x替换了几个接口,包括module.loaders这样的重要接口已被弃用(详细变更).官网目前已不推荐使用1.x版本,早上折腾一番,根据2.2版本配置了react基本的开发环境,满足不太复杂的web应用开发,后期会逐步优化配置文件. 如果您之前使用过webpack,需要改动的地方并不大.下文假定您没有接触过类似的打

  • Docker搭建前端Java的开发环境详解

    一.解决的痛点 1.免搭建后端开发环境. 2.开发环境改变只需要改变镜像就能同步更新. 3.不需要eclipse等IDE工具. 4.切换开发项目 二.解决思路 利用docker启动Ubuntu镜像,在容器中搭建好项目需要的开发环境,使用挂载卷将本地代码挂载到容器中,使用容器中的环境编译运行代码,宿主机通过 docker 暴漏出的端口访问容器中的服务,这样前端的开发机上就只需要部署docker就搞定了. 三.关于docker 了解docker 本文并不打算细讲docker的知识,相关的文章有很多,

  • iOS使用Target如何快速科学的区分开发环境详解

    前言 本文主要给大家介绍了关于iOS利用Target区分开发环境的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 什么是区分开发环境: 请求的域名+第三方SDK账号的不同. 请求的域名-->因为开发环境和正式环境的服务器和数据库基本上都不是同一个. 第三方SDK账号-->第三方SDK需要账号区分防止开发测试数据污染正式环境 (推送+友盟统计是最明显的例子) 这篇文章要点: 如何使用Target去区分开发环境 如何在1的基础上面巧妙的区分第三方SDK的账号 最终目的

  • php集成开发环境详解

    HP开发使用的集成环境,可用PHPStorm, 或者用免费版的 IDEA 加 PHP 插件,两者功能基本相同,只是后者安装起来略折腾. PHPStorm的特点:跨平台,我在 Windows, Linux, Mac 下都可以使用它,完全一致的界面和功能,省着折腾了UI 还算好看,我 用的是 Darcula 这个主题可以很方便地调试位于各种地方的 PHP 脚本,比如本地的,远程的,GAE 上的,还自带一个 RESTful 客户端, 方便调试 API, 只是不大好用...可以真正地读懂源代码,进行重构

  • Kotlin 开发环境详解及简单实例

    Hello Kotlin 在前段时间举办的Google I/O 2017上,Google宣布Kotlin成为Android官方的开发语言,这个最初发布于2011年的语言在短短的时间内就吸引了大量的开发者,而Google使得它进入了更多人的视线. Kotlin是一种开源的基于JVM的变成语言,由JetBeans公司开发(大概除了使用VS的.net开发者意外,都会或多或少听说或使用过IDEA吧),名字取自圣彼得堡附近的一个小岛(Koltin island). Kotlin是一种简单的语言,其主要目标

  • 使用VScode搭建ROS开发环境的教程详解

    俗话说"工欲善其事必先利其器",之前在Ubuntu上运行的ROS项目都是用vim或者gedit编写和修改代码,然后在终端编译运行,很不方便,函数跳转查看都没办法实现.所以今天我决定找一个方便的开发工具,也就是找一个像Windows上的VS那样的集成开发工具(IDE),ROS官网上有一个不同IDE的对比文章,网址在这里 我选择使用VScode.下载安装好VScode后,在扩展栏安装C/C++,CMake,CMake Tools,Code Runner,ROS(deprecated),Chinese

  • 在Mac OS下搭建LNMP开发环境的步骤详解

    一.概述 大家应该都知道LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构.Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统.代表版本有:debian.centos.ubuntu.fedora.gentoo等.Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器.Mysql是一个小型关系型数据库管理系统.PHP是一种在服务器端执行的嵌入HTML文档的脚本语言.这四种软件均为免费开源软件,组合到一

  • Mac下快速搭建PHP开发环境步骤详解

    最近做了一个后端的项目,是用PHP+MySQL+Nginx做的,所以把搭建环境的方法简单总结一下. 备注: 物料:Apache/Nginx+PHP+MySQL+MAMPMac OS 10.12.1 自带Apache,Nginx和PHP 1.运行Apache 查看Apache版本,在终端根目录输入如下命令: sudo apachectl -v 终端会输出Apache的版本及built时间 Server version: Apache/2.4.23 (Unix) Server built:   Au

随机推荐