summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xinstall18
-rw-r--r--nvim/init.lua3
-rw-r--r--nvim/lazy-lock.json5
-rw-r--r--nvim/lua/config/lazy.lua47
-rw-r--r--nvim/lua/plugins/R.lua48
-rw-r--r--nvim/lua/plugins/treesitter.lua10
6 files changed, 118 insertions, 13 deletions
diff --git a/install b/install
index e35190d..09e0a9c 100755
--- a/install
+++ b/install
@@ -6,21 +6,20 @@ cd $(dirname $BASH_SOURCE)
BASE=$(pwd)
# dotfiles to install
-for dotfile in bashrc vimrc gitconfig gitignore Rprofile tmux.conf reportbugrc; do
+for dotfile in gitconfig gitignore Rprofile reportbugrc; do
mkdir -pv bak
[ -e ~/.$dotfile ] && mv -v ~/.$dotfile bak/.$dotfile
ln -sfv $BASE/$dotfile ~/.$dotfile
done
# nvim config
-if [ ! -e ~/.config/nvim ]; then
- ln -sfv ~/.vim ~/.config/nvim
+if [ ! -e ~/.config ]; then
+ mkdir -pv ~/.config
fi
-if [ ! -e ~/.config/nvim/init.vim ]; then
- ln -sfv ~/.vimrc ~/.config/nvim/init.vim
+if [ ! -e ~/.config/nvim ]; then
+ ln -sfv $BASE/nvim ~/.config/nvim
fi
-
# git-prompt
if [ ! -e ~/.git-prompt.sh ]; then
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh -o ~/.git-prompt.sh
@@ -31,10 +30,3 @@ mkdir -pv ~/bin
for bin in $BASE/bin/*; do
ln -svf $bin ~/bin
done
-
-# install vim-plug
-if [ ! -e ~/.vim/autoload/plug.vim ]; then
- echo Installing plug.vim from https://github.com/junegunn/vim-plug to ~/.vim/autoload/
- curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
- https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
-fi
diff --git a/nvim/init.lua b/nvim/init.lua
new file mode 100644
index 0000000..a9edd2d
--- /dev/null
+++ b/nvim/init.lua
@@ -0,0 +1,3 @@
+require("config.lazy")
+
+
diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json
new file mode 100644
index 0000000..d8bbbbe
--- /dev/null
+++ b/nvim/lazy-lock.json
@@ -0,0 +1,5 @@
+{
+ "R.nvim": { "branch": "main", "commit": "e1655b5616dff71edae0f52a651afc8d7433037c" },
+ "lazy.nvim": { "branch": "main", "commit": "a44e9cd165e11fa61ccfbea2a3cc1aaa3bcfc4f1" },
+ "nvim-treesitter": { "branch": "master", "commit": "53e20aa728713af5cb4a3e0e2dcfea18975d49fc" }
+}
diff --git a/nvim/lua/config/lazy.lua b/nvim/lua/config/lazy.lua
new file mode 100644
index 0000000..11d41e0
--- /dev/null
+++ b/nvim/lua/config/lazy.lua
@@ -0,0 +1,47 @@
+-- Bootstrap lazy.nvim
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not (vim.uv or vim.loop).fs_stat(lazypath) then
+ local lazyrepo = "https://github.com/folke/lazy.nvim.git"
+ local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
+ if vim.v.shell_error ~= 0 then
+ vim.api.nvim_echo({
+ { "Failed to clone lazy.nvim:\n", "ErrorMsg" },
+ { out, "WarningMsg" },
+ { "\nPress any key to exit..." },
+ }, true, {})
+ vim.fn.getchar()
+ os.exit(1)
+ end
+end
+vim.opt.rtp:prepend(lazypath)
+
+-- Make sure to setup `mapleader` and `maplocalleader` before
+-- loading lazy.nvim so that mappings are correct.
+-- This is also a good place to setup other settings (vim.opt)
+vim.g.mapleader = " "
+vim.g.maplocalleader = ","
+
+-- Create some keymaps for moving between vim windows without <C-w>, as it
+-- closes the browser tab if vim is run via a browser.
+vim.api.nvim_set_keymap('n', '<C-h>', '<C-w>h', { noremap = true, silent = true })
+vim.api.nvim_set_keymap('n', '<C-j>', '<C-w>j', { noremap = true, silent = true })
+vim.api.nvim_set_keymap('n', '<C-k>', '<C-w>k', { noremap = true, silent = true })
+vim.api.nvim_set_keymap('n', '<C-l>', '<C-w>l', { noremap = true, silent = true })
+
+--
+vim.opt.ts = 2
+vim.opt.sw = 2
+vim.opt.expandtab = true
+
+-- Setup lazy.nvim
+require("lazy").setup({
+ spec = {
+ -- import your plugins
+ { import = "plugins" },
+ },
+ -- Configure any other settings here. See the documentation for more details.
+ -- colorscheme that will be used when installing plugins.
+ install = { colorscheme = { "habamax" } },
+ -- automatically check for plugin updates
+ checker = { enabled = true },
+})
diff --git a/nvim/lua/plugins/R.lua b/nvim/lua/plugins/R.lua
new file mode 100644
index 0000000..b4dec39
--- /dev/null
+++ b/nvim/lua/plugins/R.lua
@@ -0,0 +1,48 @@
+-- Adapted from the R.nvim README.md file on github
+return {
+ "R-nvim/R.nvim",
+ -- Only required if you also set defaults.lazy = true
+ lazy = false,
+ -- R.nvim is still young and we may make some breaking changes from time
+ -- to time. For now we recommend pinning to the latest minor version
+ -- like so:
+ version = "~0.1.0",
+ config = function()
+ -- Create a table with the options to be passed to setup()
+ ---@type RConfigUserOpts
+ local opts = {
+ hook = {
+ on_filetype = function()
+ vim.api.nvim_buf_set_keymap(0, "n", "<Enter>", "<Plug>RDSendLine", {})
+ vim.api.nvim_buf_set_keymap(0, "n", "<C-h>", "<C-w>w", {})
+ vim.api.nvim_buf_set_keymap(0, "v", "<Enter>", "<Plug>RSendSelection", {})
+ end
+ },
+ R_args = {"--quiet", "--no-save"},
+ min_editor_width = 72,
+ rconsole_width = 78,
+ objbr_mappings = { -- Object browser keymap
+ c = 'class', -- Call R functions
+ ['<localleader>gg'] = 'head({object}, n = 15)', -- Use {object} notation to write arbitrary R code.
+ v = function()
+ -- Run lua functions
+ require('r.browser').toggle_view()
+ end
+ },
+ disable_cmds = {
+ "RClearConsole",
+ "RCustomStart",
+ "RSPlot",
+ "RSaveClose",
+ },
+ }
+ -- Check if the environment variable "R_AUTO_START" exists.
+ -- If using fish shell, you could put in your config.fish:
+ -- alias r "R_AUTO_START=true nvim"
+ if vim.env.R_AUTO_START == "true" then
+ opts.auto_start = "on startup"
+ opts.objbr_auto_start = true
+ end
+ require("r").setup(opts)
+ end,
+}
diff --git a/nvim/lua/plugins/treesitter.lua b/nvim/lua/plugins/treesitter.lua
new file mode 100644
index 0000000..07c4586
--- /dev/null
+++ b/nvim/lua/plugins/treesitter.lua
@@ -0,0 +1,10 @@
+return {
+ "nvim-treesitter/nvim-treesitter",
+ run = ":TSUpdate",
+ config = function ()
+ require("nvim-treesitter.configs").setup({
+ ensure_installed = { "markdown", "markdown_inline", "r", "rnoweb", "yaml", "csv" },
+ highlight = { enable = true },
+ })
+ end
+}

Contact - Imprint