haskell-vim-now

One-line Haskell Vim install

  • 所有者: begriffs/haskell-vim-now
  • 平台:
  • 許可證: MIT License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

Build Status

In less than ten minutes your Vim will transform into a beautiful
Haskell paradise. (Don't worry, it backs up your original
configuration to ~/.config/haskell-vim-now/backup/.vimrc.yearmonthdate_time.) It also builds all necessary support binaries
including ghcide, hlint, hoogle and more.

No more wading through plugins trying to make them all work together.
In ten minutes you will have a fully functional Vim that looks great
and lets you

  • inspect types
  • evaluate Haskell
  • lint and check
  • manipulate tags
  • hoogle lookup
  • pointfree refactor
  • tab complete
  • unicode symbols
  • highlight DSLs
  • work with git

Installation

Just download and run the installer:

curl -L https://git.io/haskell-vim-now > /tmp/haskell-vim-now.sh
bash /tmp/haskell-vim-now.sh

WARNING: this command, once successful, will make backups and remove your existing VIM configurations (.vim, plugins etc). You can later customize HVN configurations.

Keybindings and commands

The commands are organized into logical groups to help you remember
them.

Types, autocomplete, refactoring, and linting

Hoogle

GHCI repl

If you open a tmux terminal alongside MacVim then you can send Vim
selections to it. This works well for evaluating things in GHCI.

Git

Commenting

Aligning

Splits and find file

Buffers

Misc

(If you prefer to restore the default screen redraw action of C-l
then add unmap <c-l> to your vimrc.local)

Customizing

After installing this configuration, your .vimrc and .vim will
be under version control. Don't alter these files. Instead, add
your own settings to ~/.config/haskell-vim-now/vimrc.local.pre,
~/.config/haskell-vim-now/vimrc.local.

Adding Vim Plugins

Haskell-Vim-Now uses vim-plug
to install plugins. It uses the following vim configuration structure
to determine what to install:

call plug#begin('~/.vim/plugged')

" The plugins are named in github short form, for example:
Plug 'junegunn/vim-easy-align'

" All plug statements must be between plug#begin and plug#end
call plug#end()

However the .vimrc file in Haskell-Vim-Now is under version control
so you shouldn't edit it directly. To add a plugin what you should
do is add Plug statements to ~/.config/haskell-vim-now/plugins.vim.
When ready reload .vimrc and run :PlugInstall to install plugins.

Neovim support

The .vimrc configuration is fully compatible with Neovim, and adds a few
Neovim specific mappings for the terminal mode (terminal emulation is activated
with :terminal). The mappings make Esc and c-[hjkl] function as one would
expect them to from normal mode.

The Neovim configuration is found at .config/nvim, and is symlinked just like
regular vim, which means you should only add your own settings to
~/.config/haskell-vim-now/vimrc.local.pre, ~/.config/haskell-vim-now/vimrc.local
and ~/.config/haskell-vim-now/plugins.vim.

You can quickly backup and replace your Neovim setup by running the scripts/neovim.sh
script.

Docker image

If you are into developing with Docker, you can use the image.

docker pull haskell:7.8
docker build -t haskell-vim .
docker run --rm -i -t haskell-vim /bin/bash

If instead you want to extract the vim setup from the image that is easy enough

docker build -t haskell-vim .
mkdir ~/.haskell-vim-now
cd ~/.haskell-vim-now
docker run --rm haskell-vim tar -cz -C /root/.haskell-vim-now . > haskell-vim-now.tgz
tar -xzf haskell-vim-now.tgz

However, some things (for example the hoogle database) use absolute paths and don't work correctly.

Advanced install methods

Basic install

In case you want to skip the haskell specific components and want to install
just the common vim config you can use:

bash <(curl -sL https://git.io/haskell-vim-now) --basic

Installing from a fork or clone

If you have a modified fork you can use the --repo option to tell the install
script the location of your repository:

bash <(curl -sL INSTALL-SCRIPT-URL) --repo FORK-URL

For example:

bash <(curl -sL https://raw.githubusercontent.com/begriffs/haskell-vim-now/master/install.sh) --repo https://github.com/begriffs/haskell-vim-now.git

Additionally the --branch argument can override the default of master used when cloning the repo.

If you have a local git clone you can use install.sh directly
to install from your clone:

install.sh --repo CLONE-PATH

Installing in Nix build environment

Use --nix parameter, in case you want to execute stack installation in nix-shell

bash <(curl -sL https://git.io/haskell-vim-now) --nix

Troubleshooting

See this wiki
page for tips on fixing installation problems.

Thank you!

Big thanks to contributors. I'd especially like to thank @SX91 for rewriting the installer and for other major improvements.

主要指標

概覽
名稱與所有者begriffs/haskell-vim-now
主編程語言Shell
編程語言Shell (語言數: 4)
平台
許可證MIT License
所有者活动
創建於2013-12-09 22:50:29
推送於2020-08-25 14:20:41
最后一次提交2020-08-25 16:20:39
發布數0
用户参与
星數1k
關注者數27
派生數100
提交數336
已啟用問題?
問題數199
打開的問題數39
拉請求數89
打開的拉請求數0
關閉的拉請求數13
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?