V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wsdjeg
V2EX  ›  Vim

终极 IDE,既然终极如此不值钱,那么我随便从 github 上找一个,你们看看和前面所谓的终极相比,如何?

  •  
  •   wsdjeg · 2016-12-03 20:35:32 +08:00 · 5964 次点击
    这是一个创建于 2672 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/extr0py/oni

    Build Status

    Oni

    Neovim + JavaScript powered IDE

    Introduction

    ONI is a NeoVim front-end UI with rich IDE-like UI integration points.

    This repository is under active development, and until 1.0 please consider everything unstable.

    Features

    ONI brings several IDE-like integrations to NeoVim:

    Quick Info

    quick-info-demo

    Code Completion

    completion-demo

    Syntax / Compilation Errors

    syntax-error-demo

    Fuzzy Finder

    fuzzy-finder-demo

    Live Evaluation

    live-eval-demo

    Usage

    Install

    • For Windows, a pre-built x86 binary of NeoVim is included.

    • For OSX, there is no included pre-built binary. Please Install Neovim and ensure the 'nvim.exe' is available.

    1. Run npm install -g oni-vim

    2. Run oni at the command line to start the editor.

    Build

    1. Clone the repository: git clone https://github.com/extr0py/oni.git

    2. Install dependencies by running npm install from the root

    3. Build using npm run build from the root

    4. Run npm link to register the ONI command

    5. Run oni at the command line

    Goals

    The goal of this project is to provide both the full-fledged VIM experience, with no compromises, while pushing forward to enable new scenarios.

    • Rich plugin development - using JavaScript, instead of VimL, allowing deep-language integration.
    • Cross-platform support - across OS X and Windows.
    • Batteres included - rich features are available out of the box - minimal setup needed to be productive. TypeScript development is the canonical example, but the hope is that other language providers will be included. Later, an included package manager will make it simple to find and install plugins.
    • Performance - no compromises, VIM is fast, and ONI should be fast too.
    • Ease Learning Curve - without sacrificing the VIM experience

    VIM is an incredible tool for manipulating text at the speed of thought. With a composable, modal command language, it is no wonder that VIM usage is still prevalent today even in the realm of modern editors.

    However, going from thought to code has some different challenges than going from thought to text. IDEs today provide several benefits that help to reduce cognitive load when writing code, and that benefit is tremendously important - not only in terms of pure coding efficiency and productivity, but also in making the process of writing code enjoyable and fun.

    In my journey of learning VIM and increasing proficiency in other editors, I've found there is always a trade-off - either enjoy the autocompletion and IDE features, and compromise on the experience and muscle memory I've built with VIM, or work in VIM and compromise on the rich language functionality we have in an IDE.

    The goal of this project is to give an editor that gives the best of both worlds - the power, speed, and flexibility of using VIM for manipulating text, as well as the rich tooling that comes with an IDE.

    Documentation

    Configuration

    ONI is configurable via a 'config.json' located in $HOME/.oni

    See the Config.ts file for interesting values to set

    Guide

    TODO: Coming soon.

    Extensibility

    ONI offers several rich extensibility points, with the focus being on various UI integrations as well as IDE-like capabilities.

    Language Extensibility

    Language extenders given ONI rich integration with languages, offering services like:

    • Code Completion
    • Quick Info
    • Goto Definition
    • Formatting
    • Live code evaluation
    • Unit test integration
    • Enhanced syntax highlighting

    To see the in-progress API, check out the Oni.d.ts definition file as well as the typescript language plugin, which demonstrates several of these features:

    Background

    ONI currently supports the setting of a background image as well as background opacity.

    Debuggers

    Project Templates

    Snippets

    FAQ

    TODO

    Included VIM Plugins

    This distribution contains several VIM plugins that enhance the VIM experience.

    These are:

    As well as some color-schemes:

    Roadmap

    • 0.1

      • [x] Initial repo
      • [x] OS X / Windows support
      • [x] TypeScript language support
    • 0.2

      • [x] Mouse support
        • [ ] Buffer scroll bars
      • [ ] Extensibility models
        • [ ] Language service
          • [x] Autocompletion (TypeScript, Javascript)
          • [x] QuickInfo (TypeScript, JavaScript)
          • [x] Goto Definition (TypeScript, JavaScript)
          • [x] Errors
          • [x] Formatting
          • [ ] Documentation
      • [ ] Services
        • [x] QuickOpen - Modern CTRL-P replacement
      • [ ] Installation via NPM
        • [ ] Handle case where NeoVim is not already installed
    • 0.3

      • [ ] Proper keymap support
      • [ ] Feature: Replace visual world
      • [x] Configuration loading
      • [ ] Git overlays
        • [ ] Git blame overlay
        • [ ] Git log overlay
      • [ ] QuickOpen Improvements
        • [ ] Config variable
        • [ ] Non-git strategy
        • [x] Fuzzy Matching
        • [ ] Scrollbar
        • [x] Icon
      • [ ] AutoCompletion
        • [ ] Fuzzy Matching
        • [ ] Scrollbar
    • 0.4

      • [ ] Better app icon
      • [ ] Listing in NeoVim wiki
      • [ ] Left Pane
      • [ ] Animation support
        • [ ] Cursor animation
      • [ ] Performance improvements
        • [ ] Scroll performance improvement (avoid redraw)
        • [ ] Perceived performance - render characters instally in insert
    • 0.5

      • [ ] Status Line Replacement
        • [ ] Extensibility API
    • Future

      • [ ] Scrollbar minimap (a-la sublime)
      • [ ] Enhanced VimTutor
      • [ ] Collaborative app icon
      • [ ] Extensibility
        • [ ] Debugger support
        • [ ] Snippet support
      • [ ] Project templates
      • [ ] Package Manager

    License

    MIT

    Contributing

    Contributions are very much welcome :)

    Thanks

    Big thanks to the NeoVim team - without their work, this project would not be possible. The deep integration with VIM would not be possible without the incredible work that was done to enable the msgpack-RPC interface. Thanks!

    In addition, there are several other great NeoVim front-end UIs here that served as great reference points and learning opportunities.

    8 条回复    2017-02-06 08:36:34 +08:00
    gfexfizv
        1
    gfexfizv  
       2016-12-04 12:45:28 +08:00 via iPhone
    这个很吊,如果能支持 c 和 c++就更好
    simen513
        2
    simen513  
       2016-12-05 23:37:10 +08:00
    不错啊,这个很像 UI 的编辑器了。
    yuuko
        3
    yuuko  
       2016-12-10 19:30:53 +08:00 via Android
    厉害
    skywind3000
        4
    skywind3000  
       2016-12-13 12:35:59 +08:00
    这明明就是一个 Atom Editor 啊,哈哈。
    wsdjeg
        5
    wsdjeg  
    OP
       2016-12-13 21:57:40 +08:00
    @skywind3000 傻逼 自己去 github 看
    skywind3000
        6
    skywind3000  
       2016-12-26 14:42:17 +08:00
    @wsdjeg 我当然看过啊,就是用 Electron ( atom-core )给 nvim 套了个壳,你没看好多组件都和 Atom Editor 一模一样么?
    song940
        7
    song940  
       2017-02-03 15:26:45 +08:00 via iPhone
    @wsdjeg 傻逼
    wsdjeg
        8
    wsdjeg  
    OP
       2017-02-06 08:36:34 +08:00
    @song940 你才傻逼,莫名其妙
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3382 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:37 · PVG 18:37 · LAX 03:37 · JFK 06:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.