Git Product home page Git Product logo

jarvis's Introduction

Jarvis

(Neo)Vim of the Future
A powerful, minimalist development environment with cutting-edge features

Jarvis SS

Table of Contents

Features

The following are features provided by Jarvis. They all have quick keybindings to make them quick and easy to use.

  1. Quick-open files - zsh & NeoVim

    Open files with simple keystrokes with fuzzy matching via command line and inside NeoVim.

  2. Buffer management - NeoVim

    Manage buffers inside NeoVim and add/delete/search your open files.

  3. Project searching - NeoVim

    Quickly search for simple terms or complex regular expressions in your project.

  4. Asynchronous linting - NeoVim

    For Typescript/Javascript development, code is linted asynchronously with coc-eslint and automatically formatted via coc-prettier on file save to conform to prettier standards.

  5. Session management - Tmux and zsh/fzf

    Create sessions for each project with a custom layout. Quickly browse, create, and delete sessions. Tmux even keeps sessions alive if the terminal is closed. Using fzf and zsh, you can create or switch to sessions easily, as well as delete session by name or fuzzy-search.

  6. Keyword auto-complete - NeoVim and zsh

    Neovim - Automatic, asynchronous keyword completion available in the current buffer via coc.nvim. It's powered by the same language server extensions as VSCode. It also supports the new "floating window" feature so you can finally have syntax highlighting in your completion windows!

    A variety of languages are supported by coc.nvim. I currently use a pretty standard set for web development that I will continue to tweak as needed.

  7. Code Snippets - NeoVim

    Commonly used code snippets made available with a few keystrokes to reduce time and effort via neosnippet. Snippets available via auto-complete window removes need to memorize commands. Quickly hop to relevant pieces of snippet as needed.

  8. Improved Vim motion - NeoVim

    Using vim-easymotion, quickly jump to precise locations with minimal keystrokes.

Installation

Neovim is supported across multiple platforms. Some tools used by Jarvis are not, however. For MacOSX, an installation script is included that will install several tools for you. For Windows, no installation script is available, but you can manually install everything needed for Neovim in a few short steps.

See the Installation Guide for detailed instructions.

Commands

See the Commands Guide for a list of mappings/shortcuts.

Optional Tools

This is a collection of cool tools that you might want to use.

z* - Tracks most commonly used directories for optimized directory switching

vtop* - A nifty graphical activity monitor for the command line

taskbook - Tasks, boards, & notes for command-line. Think Trello for the terminal.

pecan - Configurable menu bar for OSX.

vim-markdown-composer - Asynchronous markdown preview plugin for Vim/Neovim.

shpotify - Control Spotify from the command line (OSX-only)

* - Tool is installed automatically if install.sh script is used

Support

If you find any problems or bugs, please open a new issue.

jarvis's People

Contributors

boombador avatar canibanoglu avatar ctaylo21 avatar jhkersul avatar pieman72 avatar robinsturmeit avatar sch1ldkr0ete avatar storypixel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jarvis's Issues

Linux support

As I mentioned in #30, I've been busy ripping this off and one of my requirements was to get my version to run on Linux (more specifically Ubuntu under WSL2) to work.

I have checked out previous issues and I can see that there have been some requests for a linux version of this and that you've made some suggestions and that you only run this when you have a new computer.

The good news is that "porting" this to work with linux is a lot less work that I would have expected thanks to linuxbrew! I have got this (well, a modified version of this) to work just fine with the brew install ... commands.

Another idea that I had while porting was to use asdf to manage the languages. I see that node and python are installed by brew but honestly I believe that most of us are using many version managing scripts like 'nvm', 'rvm' and this only adds to the complication. I've recently switched to asdf for managing different language versions and also integrated asdf to be used during the installation.

Related to this and #30, 'ruby' is a dependency of JARVIS and should be included in the install script. Then again OS X does ship with ruby installed.

Fix broken mappings in Denite

Mappings that open files in new splits from normal mode in Denite are broken. User report:

CTRL + T from the denite fzf (LEADER + T) I get a "E73: tag stack empty"

iTerm2 profile error

I've copied com.googlecode.iterm2.plist to /Users/foo/Library/Application Support/iTerm2/DynamicProfiles/

I am getting:

6/2, 07:23:57,428: Ignoring dynamic profiles in malformed file /Users/foo/Library/Application Support/iTerm2/DynamicProfiles/com.googlecode.iterm2.plist and continuing.

FAQ: how do you comment code

This configuration is awesome. I have a question about the plugin for commenting source code. could you plz share? thanks a lot.

Denite is not setup with ripgrep to find hidden files.

I found your config a few days back and love it, so thanks for that ❤️
However, you are missing the --hidden flag in the file/rec config in order to search for hidden files:

call denite#custom#var('file/rec', 'command', ['rg', '--files', '--glob', '!.git', '--hidden'])

Error on install

Ran into issues with install after commenting out mv of previous error.
image

Installing fails because of path issues

On a fresh mac install, there are several things that fail because of pathing issues. I don't know enough bash to fix all of them

  1. Backup.sh creates a files array
    files=("$HOME/.config/nvim" "$HOME/.zshrc" "$HOME/.tmux.conf")

However, if the nvim config is missing (due to nvim not installed), the script will stop after attempting to backup that file, and zshrc backup is not done. The else block is also not called for some reason.

  1. Link.sh does not get the current directory and as a result does not link anything.
    $INSTALLDIR is defined in install.sh, but not passed over to link.sh for some reason

  2. The copy command for the space theme for vim-airline is not correct. Current command is
    cp ./config/nvim/space.vim ./config/nvim/plugged/vim-airline-themes/autoload/airline/themes/space.vim
    and should be something like:
    cp ./config/nvim/space.vim $HOME/.config/nvim/plugged/vim-airline-themes/autoload/airline/themes/space.vim

Last version of denite isn't working

There's a compatibility problem with the latest version of Denite plugin.
When try to search content on all files, there's the following error:

[denite] Traceback (most recent call last):
[denite]   File "/home/kersul/.cache/vim/dein/repos/github.com/Shougo/denite.nvim/rplugin/python3/denite/rplugin.py", line 26, in start
[denite]     return ui.start(args[0], context)
[denite]   File "/home/kersul/.cache/vim/dein/repos/github.com/Shougo/denite.nvim/rplugin/python3/denite/ui/default.py", line 63, in start
[denite]     self._start_sources_queue(context)
[denite]   File "/home/kersul/.cache/vim/dein/repos/github.com/Shougo/denite.nvim/rplugin/python3/denite/ui/default.py", line 144, in _start_sources_queue
[denite]     self._start(context['sources_queue'][0], context)
[denite]   File "/home/kersul/.cache/vim/dein/repos/github.com/Shougo/denite.nvim/rplugin/python3/denite/ui/default.py", line 187, in _start
[denite]     self._init_denite()
[denite]   File "/home/kersul/.cache/vim/dein/repos/github.com/Shougo/denite.nvim/rplugin/python3/denite/ui/default.py", line 660, in _init_denite
[denite]     self._denite.on_init(self._context)
[denite]   File "/home/kersul/.cache/vim/dein/repos/github.com/Shougo/denite.nvim/rplugin/python3/denite/parent.py", line 35, in on_init
[denite]     self._put('on_init', [context])
[denite]   File "/home/kersul/.cache/vim/dein/repos/github.com/Shougo/denite.nvim/rplugin/python3/denite/parent.py", line 62, in _put
[denite]     return self._child.main(name, args, queue_id=None)
[denite]   File "/home/kersul/.cache/vim/dein/repos/github.com/Shougo/denite.nvim/rplugin/python3/denite/child.py", line 69, in main
[denite]     self.on_init(args[0])
[denite]   File "/home/kersul/.cache/vim/dein/repos/github.com/Shougo/denite.nvim/rplugin/python3/denite/child.py", line 129, in on_init
[denite]     raise NameError('Source "' + name + '" is not found.')
[denite] NameError: Source "-mode=normal" is not found.
[denite] Please execute :messages command.

Apparently "-mode=normal" is not a valid command.

Failure on install

During install I ran into it trying to move a file that didn't exist already.
image

Enable support for dynamic JS/TS commands based upon fileype

Currently these commands exist for JS files via tern_for_vim

" Jump to the definition of the thing under cursor
nmap <leader>dj :TernDef<CR>

" Show all references to the variable or property under the cursor
nmap <leader>dr :TernRefs<CR>

" Rename the variable under cursor
nmap <leader>dn :TernRename<CR>

" Look up documentation of thing under cursor
nmap <leader>dd :TernDoc<CR>

For typescript files, similar commands (plus a few more) exist via nvim-typescript.

Commands like :TSDefPreview, :TSDoc, etc.. Jarvis should be smart enough to allow the same mappings to be used across both JS/TS and use different tools to complete the expected task.

colorls dependency

Hello,

I've shamelessly ripped off jarvis and have been modifiying a bit for myself and one thing I've noticed that there is a dependency on colorls that doesn't appear in the installation scripts. The result is you can't use ls after setup until you install colorls.

I'm happy to send in a PR to do gem install colorls :)

Fixing 'caskroom/fonts was moved' error

Hi, I am using your install.sh as a living guide to config neovim in a way that doesn't make me sad and I noticed

❯ brew tap caskroom/fonts
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
No changes to formulae.

Error: caskroom/fonts was moved. Tap homebrew/cask-fonts instead.

Can I open a PR if you're busy to change caskroom/fonts to homebrew/cask-fonts assuming this helps?

Use XDG_CONFIG_HOME

This assumes that XDG_CONFIG_HOME is ~/.config

Ideally it should not. For instance, line 2 of init.vim should be:

execute 'source ' . stdpath('config') . '/plugins.vim'

I should be able to clone the repo and try it out:

git clone jarvis
XDG_CONFIG_HOME=$PWD/jarvis/config nvim jarvis

denite ≥ 2.0 breaks current configuration settings

Heads up to anyone who upgrades to denite ≥ 2.0 the denite settings from this repo are not compatible with denite 2.0. From what I can tell Shougo removed the ability to add custom mappings that this dotfiles repo uses to map certain key bindings with denite, ie.

leader+t fuzzy file search

Error Messages

[denite] pynvim.api.nvim.NvimError:
Error detected while processing function denite#helper#call_denite

👆 some of the error messages that I was being presented with after upgrading to denite 2.x

All that said, sifting through the open / closed issue for denite, one of the better solutions I came across was,

Shougo/denite.nvim#646 (comment)

Instructions for GNU/Linux?

Hi, I've seen the instructions section and you offer instructions for Windows/OSX... Is there any way Linux users can install this "minimal distro"? thanks!

Use <cr> to confirm completion

I want tu use <cr> to confirm completion, but with map as below, things seems not working.

" Use <cr> to confirm completion, `<C-g>u` means break undo chain at current position.
" Coc only does snippet and additional edit on confirm.
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"

[Question] machine/os info util?

First of all thank you for this nice env setup, I really like it!

How did you get this machine/ os info, like in second window on your screenshot, can't find it anywhere :(

Sorry for stupid question.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.