These are the configs I like to use for the Helix Editor (Terminal Text Editor). I like to use Helix for normal text editing more than coding, hence most of the features are hidden for me.
There are also my Neovim/Neovide configs below.
Manu Järvinen
Terminal
Windows: Windows Terminal (different than PowerShell, get it from MS Store)
macOS: iTerm2
Linux: kitty
Font: IosevkaTerm Nerd Font, Semi-Bold
IosevkaNerdFontMono-SemiBold.ttf
IosevkaNerdFontMono-SemiBold-Italic.ttf
Theme
Catppuccin Frappe Helix Editor Theme
Older version comes built-in in Helix
(Although I've edited it to have the same background color for statusbar.)
Terminal is also configured to use the same theme:
Windows: https://github.com/catppuccin/windows-terminal
macOS: https://github.com/catppuccin/iterm
Linux: https://github.com/catppuccin/kitty
config.toml
theme = "manutheme2" #catppuccin-frappe, but with edited statusbar bg color
[editor]
#line-number = "relative"
#cursorline = true
color-modes = true
gutters = []
true-color = true
bufferline = "always"
# mouse = false
middle-click-paste = false
[editor.statusline]
left = []
center = []
right = []
[editor.cursor-shape]
insert = "bar"
normal = "block"
select = "underline"
[editor.indent-guides]
#render = true
[editor.soft-wrap]
enable = true
wrap-indicator = ""
max-indent-retain = 0
wrap-at-text-width = true
[keys.normal]
h = "move_prev_word_start"
l = "move_next_word_start"
j = "move_visual_line_down"
k = "move_visual_line_up"
"C-h" = "move_char_left"
"C-l" = "move_char_right"
"C-j" = "move_visual_line_down"
"C-k" = "move_visual_line_up"
"A-j" = "goto_next_paragraph"
"A-k" = "goto_prev_paragraph"
"A-h" = "goto_line_start"
"A-l" = "goto_line_end_newline"
H = "goto_line_start"
L = "goto_line_end_newline"
"minus" = "search"
"C-backspace" = "delete_word_backward"
"A-backspace" = "delete_char_forward"
"S-backspace" = "delete_word_forward"
"C-A-backspace" = ["goto_prev_paragraph", "goto_next_paragraph", "delete_selection"]
[keys.normal.g]
g = ["goto_file_start", "goto_line_start"]
e = ["goto_last_line", "goto_line_end_newline"]
[keys.insert]
"A-h" = "move_prev_word_start"
"A-l" = "move_next_word_start"
"A-j" = "move_visual_line_down"
"A-k" = "move_visual_line_up"
"C-h" = "move_char_left"
"C-l" = "move_char_right"
"C-j" = "move_visual_line_down"
"C-k" = "move_visual_line_up"
# "minus" = "search"
"C-backspace" = "delete_word_backward"
"A-backspace" = "delete_char_forward"
"S-backspace" = "delete_word_forward"
"C-A-backspace" = ["goto_prev_paragraph", "goto_next_paragraph", "delete_selection"]
[keys.select]
h = "move_prev_word_start"
l = "move_next_word_start"
"minus" = "search"
"C-backspace" = "delete_word_backward"
"A-backspace" = "delete_char_forward"
"S-backspace" = "delete_word_forward"
"C-A-backspace" = ["goto_prev_paragraph", "goto_next_paragraph", "delete_selection"]
Below is my NeoVim configs that I use with the Neovide GUI. Remember to do the command :PlugInstall the first time you load these in. This file goes to:
Windows: %localappdata%\nvim
macOS and Linux: ~/.config/nvim
init.lua
vim.opt.ignorecase = true
vim.opt.smartcase = true
vim.opt.wrap = true
vim.opt.linebreak = true
vim.opt.fillchars = { lastline = " " }
vim.keymap.set('n', '<c-s>', '<cmd>write<cr>', {desc = 'Save'})
local Plug = vim.fn['plug#']
vim.call('plug#begin', '~/.config/nvim/plugged')
Plug('junegunn/limelight.vim')
Plug('pocco81/true-zen.nvim')
Plug('catppuccin/nvim', {as = 'catppuccin'})
Plug('ggandor/leap.nvim')
vim.call('plug#end')
vim.cmd.colorscheme "catppuccin-frappe"
-- These two lines cause the startup screen to disappear, but I don't need it.
vim.cmd[[autocmd BufEnter * Limelight]]
vim.cmd[[autocmd VimEnter * TZAtaraxis]]
vim.cmd[[autocmd CursorMoved,CursorMovedI * echo]]
vim.cmd[[autocmd VimEnter * sleep 20m | set fillchars=lastline:\ ]]
vim.cmd[[autocmd VimEnter * sleep 20m | cd ~]]
vim.g.mapleader = ' '
if vim.g.neovide then
vim.o.guifont = "IosevkaTerm_Nerd_Font_Mono:h18"
vim.g.neovide_refresh_rate = 60
vim.g.neovide_transparency = 1.0
vim.g.neovide_no_idle = false
vim.g.neovide_fullscreen = false
vim.g.neovide_cursor_animation_length = 0.10
vim.g.neovide_cursor_trail_length = 0.5
vim.g.neovide_cursor_antialiasing = true
vim.g.neovide_cursor_vfx_mode = "pixiedust"
vim.g.neovide_cursor_vfx_opacity = 200.0
vim.g.neovide_cursor_vfx_particle_lifetime = 7.2
vim.g.neovide_cursor_vfx_particle_density = 250.0
vim.g.neovide_cursor_vfx_particle_speed = 10.0
vim.g.neovide_cursor_vfx_particle_phase = 1.5
vim.g.neovide_cursor_vfx_particle_curl = 17.0
end
vim.g.neovide_scale_factor = 1.0
local change_scale_factor = function(delta)
vim.g.neovide_scale_factor = vim.g.neovide_scale_factor * delta
end
vim.keymap.set("n", "<C-+>", function()
change_scale_factor(1.25)
end)
vim.keymap.set("n", "<C-->", function()
change_scale_factor(1/1.25)
end)
vim.g.neovide_input_macos_alt_is_meta = true
require("user.keymaps")
require('leap').add_default_mappings()
And the below configs go to file:
...nvim\lua\user\keymaps.lua
keymaps.lua
local opts = { noremap = true, silent = true }
local term_opts = { silent = true }
-- Shorten function name
local keymap = vim.api.nvim_set_keymap
-- Modes
keymap('i', 'å', '<Esc>', { noremap = true, silent = true })
keymap("n", "h", "b", opts)
keymap("n", "l", "w", opts)
keymap("n", "j", "gj", opts)
keymap("n", "k", "gk", opts)
keymap("n", "-", "/", opts)
keymap("n", "<C-h>", "h", opts)
keymap("n", "<C-l>", "l", opts)
keymap("n", "<C-j>", "j", opts)
keymap("n", "<C-k>", "k", opts)
keymap("n", "<S-l>", "g$", opts)
keymap("n", "<S-h>", "g0", opts)
keymap("n", "<A-l>", "$", opts)
keymap("n", "<A-h>", "0", opts)
keymap("v", "h", "b", opts)
keymap("v", "l", "w", opts)
keymap("v", "j", "gj", opts)
keymap("v", "k", "gk", opts)
keymap("v", "<C-h>", "h", opts)
keymap("v", "<C-l>", "l", opts)
keymap("v", "<C-j>", "j", opts)
keymap("v", "<C-k>", "k", opts)
keymap("i", "<C-h>", "<Left>", opts)
keymap("i", "<C-l>", "<Right>", opts)
keymap("i", "<C-j>", "<Down>", opts)
keymap("i", "<C-k>", "<Up>", opts)
vim.api.nvim_set_keymap('i', '<C-BS>', '<C-W>', opts) -- delete_word_backward using <C-W> in insert mode.
vim.api.nvim_set_keymap('i', '<A-BS>', '<Del>', opts) -- delete_char_forward using <Del> in insert mode.
vim.api.nvim_set_keymap('i', '<S-BS>', '<C-Right><C-W>', opts) -- delete_word_forward using a combination of moving to next word and then deleting backward.
vim.api.nvim_set_keymap('i', '<C-A-BS>', '<Esc>dapi', opts) -- delete_paragraph. First, switch to normal mode with <Esc>, then delete around paragraph.
-- Define the functions using vim.cmd
vim.cmd[[
function! NextParagraph()
if getbufline('%', line('.')) == ['']
call search('\v(%^|\S)', 'b')
endif
call search('\v(%^\n?|\n\n)\s*\zs\S')
endfunction
]]
vim.cmd[[
function! PreviousParagraph()
call search('\v(%^\n?|\n\n)\s*\zs\S', 'b')
endfunction
]]
vim.cmd[[
function! NextSentence()
if getbufline('%', line('.')) == ['']
call search('\v(%^|\S)', 'b')
endif
call search('\v(%^\n?|\n\n|[.?!,])\s*\zs\S')
endfunction
]]
vim.cmd[[
function! PreviousSentence()
call search('\v(%^\n?|\n\n|[.?!,])\s*\zs\S', 'b')
endfunction
]]
keymap('n', '<A-j>', ':call NextParagraph()<CR>', { noremap = true, silent = true })
keymap('n', '<A-k>', ':call PreviousParagraph()<CR>', { noremap = true, silent = true })
keymap('n', ')', ':call NextSentence()<CR>', { noremap = true, silent = true })
keymap('n', '(', ':call PreviousSentence()<CR>', { noremap = true, silent = true })