From 6c1f05c45f4b4b7d0db8dfb0aa663dbd4adcf6c4 Mon Sep 17 00:00:00 2001 From: Abdellah El Morabit Date: Sun, 16 Nov 2025 20:20:24 +0100 Subject: [PATCH] feature: metals for scala development --- nvim/init.lua | 44 ++-- nvim/lazy-lock.json | 8 +- vifm/colors/Default.vifm | 101 ++++++++ vifm/scripts/README | 6 + vifm/vifminfo.json | 1 + vifm/vifmrc | 499 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 638 insertions(+), 21 deletions(-) create mode 100644 vifm/colors/Default.vifm create mode 100644 vifm/scripts/README create mode 100644 vifm/vifminfo.json create mode 100644 vifm/vifmrc diff --git a/nvim/init.lua b/nvim/init.lua index c4624ea..807f0b5 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -33,9 +33,29 @@ require("lazy").setup({ { "sindrets/diffview.nvim", dependencies = "nvim-lua/plenary.nvim" }, { "airblade/vim-gitgutter" }, { 'windwp/nvim-autopairs', event = "InsertEnter", config = true }, -{ "wnkz/monoglow.nvim", config = function() vim.cmd'colorscheme monoglow' end} - +{ "wnkz/monoglow.nvim", config = function() vim.cmd'colorscheme monoglow' end}, +{ + "scalameta/nvim-metals", + ft = { "scala", "sbt", "java" }, + opts = function() + local metals_config = require("metals").bare_config() + metals_config.on_attach = function(client, bufnr) + -- your on_attach function + end + return metals_config + end, + config = function(self, metals_config) + local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true }) + vim.api.nvim_create_autocmd("FileType", { + pattern = self.ft, + callback = function() + require("metals").initialize_or_attach(metals_config) + end, + group = nvim_metals_group, + }) + end +} }) -- neovim configuration @@ -77,8 +97,8 @@ vim.keymap.set('n', 'fr', require('telescope.builtin').lsp_references) vim.keymap.set('n', 'frr', require('telescope.builtin').diagnostics) -- Error Keymaps -vim.keymap.set('n', 'tn', vim.diagnostic.goto_next); -vim.keymap.set('n', 'tf', vim.diagnostic.open_float); +vim.keymap.set('n', 'nr', vim.diagnostic.goto_next); +vim.keymap.set('n', 'or', vim.diagnostic.open_float); -- transparent background vim.api.nvim_set_hl(0, 'Normal', { bg = 'none' }) @@ -89,11 +109,7 @@ vim.api.nvim_set_hl(0, 'Pmenu', { bg = 'none' }) -- Format go files vim.keymap.set('n', 'gf', function() require('go.format').goimport() end) -vim.api.nvim_set_keymap('n', 'c', ':bd', { noremap = true }) -vim.api.nvim_set_keymap('n', 'z', ':bp', { noremap = true }) -vim.api.nvim_set_keymap('n', 'x', ':bn', { noremap = true }) -vim.api.nvim_set_keymap('n', 'dr', ':noh', { noremap = true }) - +-- Diffview vim.api.nvim_set_keymap('n', 'do', ':DiffviewOpen', { noremap = true, silent = true }) vim.api.nvim_set_keymap('n', 'dc', ':DiffviewClose', { noremap = true, silent = true }) vim.api.nvim_set_keymap('n', 'dh', ':DiffviewFileHistory', { noremap = true, silent = true }) @@ -120,20 +136,14 @@ cmp.setup({ }) -require("nvim-treesitter.configs").setup { - highlight = { enable = true, additional_vim_regex_highlighting = false }, -} - require("mason").setup() require("mason-lspconfig").setup({ automatic_installation = true, }) - - require('lualine').setup { options = { - theme = 'tomorrow_night', + theme = 'iceberg_dark', section_separators = '', component_separators = '', icons_enabled = true, @@ -154,7 +164,7 @@ require('lualine').setup { path = 2 } }, - lualine_x = {''}, + lualine_x = {'lsp_status'}, lualine_y = { { 'filetype', colored = false, icon_only = true diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json index 5278750..d2f0093 100644 --- a/nvim/lazy-lock.json +++ b/nvim/lazy-lock.json @@ -8,12 +8,12 @@ "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, "lualine.nvim": { "branch": "master", "commit": "3946f0122255bc377d14a59b27b609fb3ab25768" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "b1d9a914b02ba5660f1e272a03314b31d4576fe2" }, - "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, + "mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" }, "monoglow.nvim": { "branch": "main", "commit": "95a2595f5ea3b8ee94d7030f7970746b363ad47f" }, "nvim-autopairs": { "branch": "master", "commit": "7a2c97cccd60abc559344042fefb1d5a85b3e33b" }, - "nvim-cmp": { "branch": "main", "commit": "106c4bcc053a5da783bf4a9d907b6f22485c2ea0" }, - "nvim-lspconfig": { "branch": "master", "commit": "b34fbdffdcb6295c7a25df6ba375452a2e73c32e" }, - "midnight.nvim": { "branch": "main", "commit": "fe062a6f2e5bd77cd8a260f61e6e12789eaf4f13" }, + "nvim-cmp": { "branch": "main", "commit": "d78fb3b64eedb701c9939f97361c06483af575e0" }, + "nvim-lspconfig": { "branch": "master", "commit": "c6f05c0900144f027a8a0332566878e398d457b5" }, + "nvim-metals": { "branch": "main", "commit": "40f7b9ea6ded898319136f4d6a94da9487584309" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "telescope.nvim": { "branch": "master", "commit": "3a12a853ebf21ec1cce9a92290e3013f8ae75f02" }, diff --git a/vifm/colors/Default.vifm b/vifm/colors/Default.vifm new file mode 100644 index 0000000..312da4f --- /dev/null +++ b/vifm/colors/Default.vifm @@ -0,0 +1,101 @@ +" You can edit this file by hand. +" The " character at the beginning of a line comments out the line. +" Blank lines are ignored. + +" The Default color scheme is used for any directory that does not have +" a specified scheme and for parts of user interface like menus. A +" color scheme set for a base directory will also +" be used for the sub directories. + +" The standard ncurses colors are: +" Default = -1 = None, can be used for transparency or default color +" Black = 0 +" Red = 1 +" Green = 2 +" Yellow = 3 +" Blue = 4 +" Magenta = 5 +" Cyan = 6 +" White = 7 + +" Light versions of colors are also available (they set bold +" attribute in terminals with less than 16 colors): +" LightBlack +" LightRed +" LightGreen +" LightYellow +" LightBlue +" LightMagenta +" LightCyan +" LightWhite + +" Available attributes (some of them can be combined): +" bold +" underline +" reverse or inverse +" standout +" italic (on unsupported systems becomes reverse) +" combine +" none + +" Vifm supports 256 colors you can use color numbers 0-255 +" (requires properly set up terminal: set your TERM environment variable +" (directly or using resources) to some color terminal name (e.g. +" xterm-256color) from /usr/lib/terminfo/; you can check current number +" of colors in your terminal with tput colors command) + +" highlight group cterm=attrs ctermfg=foreground_color ctermbg=background_color + +highlight clear + +highlight Win cterm=none ctermfg=white ctermbg=black +highlight Directory cterm=bold ctermfg=cyan ctermbg=default +highlight Link cterm=bold ctermfg=yellow ctermbg=default +highlight BrokenLink cterm=bold ctermfg=red ctermbg=default +highlight HardLink cterm=none ctermfg=yellow ctermbg=default +highlight Socket cterm=bold ctermfg=magenta ctermbg=default +highlight Device cterm=bold ctermfg=red ctermbg=default +highlight Fifo cterm=bold ctermfg=cyan ctermbg=default +highlight Executable cterm=bold ctermfg=green ctermbg=default +highlight Selected cterm=bold ctermfg=magenta ctermbg=default +highlight CurrLine cterm=bold,reverse ctermfg=default ctermbg=default +highlight TopLine cterm=none ctermfg=black ctermbg=white +highlight TopLineSel cterm=bold ctermfg=black ctermbg=default +highlight StatusLine cterm=bold ctermfg=black ctermbg=white +highlight WildBox ctermfg=default ctermbg=default +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight CmdLine cterm=none ctermfg=white ctermbg=black +highlight ErrorMsg cterm=none ctermfg=red ctermbg=black +highlight Border cterm=none ctermfg=black ctermbg=white +highlight OtherLine ctermfg=default ctermbg=default +highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white +highlight SuggestBox cterm=bold ctermfg=default ctermbg=default +highlight CmpMismatch cterm=bold ctermfg=white ctermbg=red +highlight CmpUnmatched cterm=bold ctermfg=white ctermbg=green +highlight CmpBlank ctermfg=default ctermbg=default +highlight AuxWin ctermfg=default ctermbg=default +highlight TabLine cterm=none ctermfg=white ctermbg=black +highlight TabLineSel cterm=bold,reverse ctermfg=default ctermbg=default +highlight User1 ctermfg=default ctermbg=default +highlight User2 ctermfg=default ctermbg=default +highlight User3 ctermfg=default ctermbg=default +highlight User4 ctermfg=default ctermbg=default +highlight User5 ctermfg=default ctermbg=default +highlight User6 ctermfg=default ctermbg=default +highlight User7 ctermfg=default ctermbg=default +highlight User8 ctermfg=default ctermbg=default +highlight User9 ctermfg=default ctermbg=default +highlight User10 ctermfg=default ctermbg=default +highlight User11 ctermfg=default ctermbg=default +highlight User12 ctermfg=default ctermbg=default +highlight User13 ctermfg=default ctermbg=default +highlight User14 ctermfg=default ctermbg=default +highlight User15 ctermfg=default ctermbg=default +highlight User16 ctermfg=default ctermbg=default +highlight User17 ctermfg=default ctermbg=default +highlight User18 ctermfg=default ctermbg=default +highlight User19 ctermfg=default ctermbg=default +highlight User20 ctermfg=default ctermbg=default +highlight OtherWin ctermfg=default ctermbg=default +highlight LineNr ctermfg=default ctermbg=default +highlight OddLine ctermfg=default ctermbg=default diff --git a/vifm/scripts/README b/vifm/scripts/README new file mode 100644 index 0000000..7694952 --- /dev/null +++ b/vifm/scripts/README @@ -0,0 +1,6 @@ +This directory is dedicated for user-supplied scripts/executables. +vifm modifies its PATH environment variable to let user run those +scripts without specifying full path. All subdirectories are added +as well. File in a subdirectory overrules file with the same name +in parent directories. Restart might be needed to recognize files +in newly created or renamed subdirectories. \ No newline at end of file diff --git a/vifm/vifminfo.json b/vifm/vifminfo.json new file mode 100644 index 0000000..3e442cb --- /dev/null +++ b/vifm/vifminfo.json @@ -0,0 +1 @@ +{"gtabs":[{"panes":[{"ptabs":[{"history":[{"dir":"/Users/nasr/torque/scala-3-project-template","file":"..","relpos":0,"ts":1763211312},{"dir":"/Users/nasr/torque","file":"scala-3-project-template","relpos":1,"ts":1763211312},{"dir":"/Users/nasr/torque/scala-3-project-template","file":"..","relpos":0,"ts":1763211312},{"dir":"/Users/nasr/torque/src/main","file":"scala","relpos":2,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.torque","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src","file":"main","relpos":1,"ts":1763212637},{"dir":"/Users/nasr","file":"torque","relpos":38,"ts":1763212637},{"dir":"/Users/nasr/torque","file":"test","relpos":4,"ts":1763212637},{"dir":"/Users/nasr","file":"torque","relpos":38,"ts":1763212637},{"dir":"/Users","file":"nasr","relpos":3,"ts":1763212637},{"dir":"/Users/nasr","file":"torque","relpos":38,"ts":1763212637},{"dir":"/Users/nasr/torque","file":"project","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/project","file":"target","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque","file":"src","relpos":2,"ts":1763212637},{"dir":"/Users/nasr/torque/src","file":"main","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main","file":"scala","relpos":2,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.com","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala/com.nsrddyn.com","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.com","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main","file":"scala","relpos":2,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.com","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala/com.nsrddyn.com","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.com","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main","file":"scala","relpos":2,"ts":1763212637},{"dir":"/Users/nasr/torque","file":"src","relpos":2,"ts":1763212637},{"dir":"/Users/nasr/torque/src","file":"main","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main","file":"resources","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/resources","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main","file":"scala","relpos":2,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.com","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala/com.nsrddyn.com","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.com","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala/com.nsrddyn.com","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main","file":"resources","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/resources","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main","file":"resources","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/resources","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main","file":"scala","relpos":2,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.torque","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main","file":"scala","relpos":2,"ts":1763212637},{"dir":"/Users/nasr","file":"torque","relpos":38,"ts":1763212637},{"dir":"/Users/nasr/torque","file":"test","relpos":4,"ts":1763212637},{"dir":"/Users/nasr","file":"torque","relpos":38,"ts":1763212637},{"dir":"/Users","file":"nasr","relpos":3,"ts":1763212637},{"dir":"/Users/nasr","file":"torque","relpos":38,"ts":1763212637},{"dir":"/Users/nasr/torque","file":"project","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/project","file":"target","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque","file":"src","relpos":2,"ts":1763212637},{"dir":"/Users/nasr/torque/src","file":"main","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main","file":"scala","relpos":2,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.com","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala/com.nsrddyn.com","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.com","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main","file":"scala","relpos":2,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.com","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala/com.nsrddyn.com","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.com","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src","file":"main","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque","file":"src","relpos":2,"ts":1763212637},{"dir":"/Users/nasr/torque/src","file":"main","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main","file":"resources","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/resources","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main","file":"scala","relpos":2,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.com","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala/com.nsrddyn.com","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.com","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala/com.nsrddyn.com","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main","file":"resources","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/resources","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main","file":"resources","relpos":1,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/resources","file":"..","relpos":0,"ts":1763212637},{"dir":"/Users/nasr/torque/src/main/scala/com.nsrddyn.torque","file":"..","relpos":0,"ts":1763212711},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.torque","relpos":1,"ts":1763212711},{"dir":"/Users/nasr/torque/src/main/scala/com.nsrddyn.torque","file":"Main.scala","relpos":1,"ts":1763212711},{"dir":"/Users/nasr/torque/src/main/scala","file":"com.nsrddyn.torque","relpos":1,"ts":1763212711},{"dir":"/Users/nasr/torque/src/main/scala/com.nsrddyn.torque","file":"..","relpos":0,"ts":1763212711},{"dir":"/Users/nasr/torque/src/main/scala","file":"..","relpos":0,"ts":1763242443},{"dir":"/Users/nasr/torque/src/main","file":"scala","relpos":2,"ts":1763242443},{"dir":"/Users/nasr/torque/src","file":"main","relpos":1,"ts":1763242443},{"dir":"/Users/nasr/torque/src/main","file":"scala","relpos":2,"ts":1763242443},{"dir":"/Users/nasr/torque/src","file":"main","relpos":1,"ts":1763242443},{"dir":"/Users/nasr/torque/src/main","file":"scala","relpos":2,"ts":1763242443},{"dir":"/Users/nasr/torque/src/main/scala","file":"..","relpos":0,"ts":1763242443},{"dir":"/Users/nasr/torque/src/main","file":"scala","relpos":2,"ts":1763242443},{"dir":"/Users/nasr/torque/src/main/scala","file":"com","relpos":1,"ts":1763242701},{"dir":"/Users/nasr/torque/src/main/scala/com","file":"nsrddyn","relpos":1,"ts":1763242701},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn","file":"torque","relpos":1,"ts":1763242701},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn/torque","file":"cpu","relpos":1,"ts":1763242701},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn/torque/cpu","file":"FPU","relpos":2,"ts":1763242701},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn/torque/cpu/FPU","file":"FPU.scala","relpos":1,"ts":1763242701},{"dir":"/Users/nasr/torque/src/main/scala","file":"com","relpos":1,"ts":1763242701},{"dir":"/Users/nasr/torque/src/main/scala/com","file":"nsrddyn","relpos":1,"ts":1763242701},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn","file":"torque","relpos":1,"ts":1763242701},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn/torque","file":"cpu","relpos":1,"ts":1763242701},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn/torque/cpu","file":"FPU","relpos":2,"ts":1763242701},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn/torque/cpu/FPU","file":"FloatLoad.scala","relpos":2,"ts":1763242701},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn/torque/cpu","file":"FPU","relpos":2,"ts":1763314074},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn","file":"..","relpos":0,"ts":1763314074}],"filters":{"invert":true,"dot":true,"manual":"","auto":""},"last-location":"/Users/nasr/torque/src/main/scala/com/nsrddyn","sorting":[2],"preview":true}]},{"ptabs":[{"history":[{"dir":"/Users/nasr/torque","file":"..","relpos":0,"ts":1763133114},{"dir":"/Users","file":"nasr","relpos":3,"ts":1763242978},{"dir":"/Users/nasr","file":"torque","relpos":35,"ts":1763242978},{"dir":"/Users/nasr/torque/src","file":"main","relpos":1,"ts":1763243523},{"dir":"/Users/nasr/torque/src/main","file":"scala","relpos":2,"ts":1763243523},{"dir":"/Users/nasr/torque/src/main/scala","file":"com","relpos":1,"ts":1763243523},{"dir":"/Users/nasr/torque/src/main/scala/com","file":"nsrddyn","relpos":1,"ts":1763243523},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn","file":"torque","relpos":1,"ts":1763243523},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn/torque","file":"cpu","relpos":1,"ts":1763243523},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn/torque/cpu","file":"ALU","relpos":1,"ts":1763243523},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn/torque/cpu/ALU","file":"..","relpos":0,"ts":1763243523},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn/torque/cpu","file":"FPU","relpos":2,"ts":1763243523},{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn/torque/cpu/FPU","file":"ALU","relpos":1,"ts":1763243523},{"dir":"/Users/nasr","file":"torque","relpos":35,"ts":1763243523},{"dir":"/Users/nasr/torque","file":"src","relpos":2,"ts":1763243523}],"filters":{"invert":true,"dot":true,"manual":"","auto":""},"last-location":"/Users/nasr/torque","sorting":[2],"preview":true}]}],"active-pane":0,"preview":true,"splitter":{"pos":-1,"ratio":0.5,"orientation":"v","expanded":false}}],"active-gtab":0,"trash":[{"trashed":"/Users/nasr/.local/share/vifm/Trash/000_com.nsrddyn.com","original":"/Users/nasr/torque/src/main/scala/com/nsrddyn/torque/cpu/com.nsrddyn.com"},{"trashed":"/Users/nasr/.local/share/vifm/Trash/000_com.nsrddyn.com","original":"/Users/nasr/torque/com.nsrddyn.com"}],"marks":{"H":{"dir":"/Users/nasr/","file":"..","ts":1763133037},"b":{"dir":"/Users/nasr/bin/","file":"..","ts":1763133037},"h":{"dir":"/Users/nasr/","file":"..","ts":1763133037},"k":{"dir":"/Users/nasr/torque/src/main/scala/com/nsrddyn/torque/cpu","file":"MatrixLoad.scala","ts":1763242947},"z":{"dir":"/Users/nasr/.config/vifm","file":"..","ts":1763133037}},"bmarks":{},"cmd-hist":[{"text":"lj","ts":1763133114},{"text":"mkdir resources","ts":1763133376},{"text":"mkdir l","ts":1763133376},{"text":"mkdir scala","ts":1763133376},{"text":"mhk","ts":1763133376},{"text":"mkdir test","ts":1763133376},{"text":"mkdir resources scala","ts":1763133376},{"text":"mkdir example","ts":1763133376},{"text":"touch Hello.scala","ts":1763133376},{"text":"mkdir main","ts":1763133376},{"text":"rm -rf ","ts":1763133494},{"text":"qiut","ts":1763211312},{"text":"quit","ts":1763211312},{"text":"mkdir com.nsrddyn.com","ts":1763212637},{"text":"rename com.nsrddyn.torque scala","ts":1763212637},{"text":"mv com.nsrddyn.torque scala","ts":1763212637},{"text":"rename scala","ts":1763212637},{"text":"mv com.nsrddyn.com","ts":1763212637},{"text":"move test/","ts":1763212637},{"text":"move Main.scala com.nsrddyn.vcom","ts":1763212637},{"text":"move com.nsrddyn.com","ts":1763212637},{"text":"delete ","ts":1763212637},{"text":"make Main.scala","ts":1763212637},{"text":"touch Main.scala","ts":1763212637},{"text":"rename com.nsrddyn.torque","ts":1763212711},{"text":"vim","ts":1763212711},{"text":"view","ts":1763212711},{"text":"move Main.scala com.nsrddyn.com","ts":1763242701},{"text":"mkdir ALU","ts":1763242701},{"text":"rename CPU","ts":1763242701},{"text":"rename CPU.scala","ts":1763242701},{"text":"move ","ts":1763242701},{"text":"rename C","ts":1763242701},{"text":"move ALU/","ts":1763242701},{"text":"classify","ts":1763242701},{"text":"classify ","ts":1763242701},{"text":"edit","ts":1763314074},{"text":"move jjj","ts":1763314074},{"text":"move ALU","ts":1763314074},{"text":"mv ALU","ts":1763314074},{"text":"mv MatrixLoad.scala FPU","ts":1763314074},{"text":"delete","ts":1763314074},{"text":"q","ts":1763314074}],"prompt-hist":[{"text":"IntLoad.scala","ts":1763314074}],"regs":{"\"":["/Users/nasr/torque/src/main/scala/com/nsrddyn/torque/cpu/IntLoad.scala","/Users/nasr/torque/src/main/scala/com/nsrddyn/torque/cpu/MatrixLoad.scala"]},"dir-stack":[],"use-term-multiplexer":false} \ No newline at end of file diff --git a/vifm/vifmrc b/vifm/vifmrc new file mode 100644 index 0000000..cf35702 --- /dev/null +++ b/vifm/vifmrc @@ -0,0 +1,499 @@ +" vim: filetype=vifm : +" +" Sample configuration file for vifm on OSX (last updated: 11 May, 2025) +" +" You can edit this file by hand. The " character at the beginning of a line +" comments out the line. Blank lines are ignored. The basic format for each +" item is shown with an example. +" +" The purpose of this file +" ======================== +" 1. Provide a sensible default configuration out of the box. +" 2. Demonstrate how a typical configuration file might look like. +" 3. Familiarize a user with commonly used features. +" 4. Provide some ideas/settings for various use cases. +" +" How to use this file +" ==================== +" - Go through it top to bottom while reading comments. +" - Adjust/remove/comment/uncomment lines as you see fit. +" - Look up :commands or 'options' in the documentation to learn more. +" +" Some settings are set to provide more useful defaults without breaking +" compatibility and others are just a great fit (e.g., some bindings) and are +" almost universally useful, but most lines are provided simply as usage +" examples and can be removed without hesitation. Make configuration specific +" to your needs using this file as a starting point. + +" ------------------------------------------------------------------------------ +" Main settings +" ------------------------------------------------------------------------------ + +" Command used to edit files in various contexts. The default is vim. +" If you would like to use another vi clone such as Elvis or Vile +" you will need to change this setting. +" +" Mind that due to `filetype * open` below by default the editor won't be used +" for opening files via l/Enter keys. Comment that line out to change the +" behaviour. +set vicmd=nvim + +" This makes vifm perform file operations on its own instead of relying on +" standard utilities like `cp`. While using `cp` and alike is a more universal +" solution, it's also much slower when processing large amounts of files and +" doesn't support progress measuring. +set syscalls + +" Trash Directory +" The default is to move files that are deleted with dd or :d to +" the trash directory. If you change this you will not be able to move +" files by deleting them and then using p to put the file in the new location. +" I recommend not changing this until you are familiar with vifm. +" This probably shouldn't be an option. +set trash + +" What should be saved automatically on restarting vifm. Drop "savedirs" +" value if you don't want vifm to remember last visited directories for you. +set vifminfo=dhistory,savedirs,chistory,state,tui,tabs,shistory,ehistory, + \phistory,fhistory,dirstack,registers,bookmarks,bmarks,mchistory + +" This is size of all of the many kinds of histories, in particular it's the +" number of last visited directories (not necessarily distinct ones) stored in +" the directory history. +set history=100 + +" Automatically resolve symbolic links on l or Enter. +set nofollowlinks + +" Natural sort of (version) numbers within text. +set sortnumbers + +" Maximum number of changes that can be undone. +set undolevels=100 + +" Use Vim's format of help file (has highlighting and "hyperlinks"). +" If you would rather use a plain text help file set novimhelp. +set vimhelp + +" If you would like to run an executable file when you +" press Enter, l or Right Arrow, set this. +set norunexec + +" Format for displaying time in file list. For example: +" TIME_STAMP_FORMAT=%m/%d-%H:%M +" See man date or man strftime for details. +set timefmt='%Y/%m/%d %H:%M' + +" Show list of matches on tab completion in command-line mode +set wildmenu + +" Display completions in a form of popup with descriptions of the matches +set wildstyle=popup + +" Display suggestions in normal, visual and view modes for keys, marks and +" registers (at most 5 files). In other view, when available. +set suggestoptions=normal,visual,view,otherpane,keys,marks,registers + +" Ignore case in search patterns unless it contains at least one uppercase +" letter +set ignorecase +set smartcase + +" Don't select search matches automatically +set nohlsearch + +" Use increment searching (search while typing) +set incsearch + +" Try to leave some space from cursor to upper/lower border in lists +set scrolloff=4 + +" Don't do too many requests to slow file systems +set slowfs=curlftpfs + +" Set custom status line look +set statusline=" Hint: %z%= %A %10u:%-7g %15s %20d " + +" Suppress "Permission denied" errors using syntax specific to GNU find +if system("find --version | grep -c 'GNU findutils'") != 0 + set findprg='find %s %a -print , -type d \( ! -readable -o ! -executable \) -prune' +endif + +" Add -s to the default value to suppress "Permission denied" errors +set grepprg="grep -n -H -I -r -s %i %a %s" + +" List of color schemes to try (picks the first one supported by the terminal) +colorscheme Default-256 Default + +" ------------------------------------------------------------------------------ +" Bookmarks +" ------------------------------------------------------------------------------ + +" :mark mark /full/directory/path [filename] + +mark b ~/bin/ +mark h ~/ + +" ------------------------------------------------------------------------------ +" Commands +" ------------------------------------------------------------------------------ + +" :com[mand][!] command_name action +" +" These are some of the macros that can be used in the action part: +" %a for user arguments +" %c for current file under the cursor +" %C for current file under the cursor of inactive pane +" %f for selected file(s) +" %F for selected file(s) of inactive pane +" %b is the same as %f %F +" %d for current directory name +" %D for current directory name of inactive pane +" %r{x} for list of files in register {x} +" %m runs the command in a menu window +" %u uses command's output to build a file list +" see `:help vifm-macros` and `:help vifm-filename-modifiers` for more + +command! df df -h %m 2> /dev/null +command! diff vim -d %f %F +command! zip zip -r %c.zip %f +command! run !! ./%f +command! make !!make %a +command! mkcd :mkdir %a | cd %a +command! reload :write | restart full + +" ------------------------------------------------------------------------------ +" File handlers and previewers +" ------------------------------------------------------------------------------ + +" Setting up handlers that are considered in all environments: +" filetype {pattern1,pattern2} program1,{Optional description}program2 +" +" Setting up handlers that are considered only in a graphical environment: +" filextype {pattern} graphical-program %c +" +" Setting up previewers: +" fileviewer {pattern1,pattern2} console-viewer1,console-viewer2 +" +" ORDER MATTERS! Both handlers and previewers are considered in the order of +" their definition, therefore they should be defined from most to least +" specific. In particular, catch-all patterns like `*`, `*/`, `.*`, `*.*` +" should be defined after all others. +" +" All entries matching a particular file are considered in order until an +" existing command is found. Other entries are accessible via :file command +" for handlers or via `a` and `A` keys for previewers in view mode. +" +" The ordering can be checked at run-time by running +" :filetype/:filextype/:fileviewer with a file name as the only argument. +" This displays a menu of defined entries annotated with availability of +" commands. +" +" More on syntax and usage: +" - macros like %c, %f, %d, etc. may be used in the commands +" - the %a macro is ignored +" - to insert a literal % use %% +" - spaces in an app name must be escaped, for example: +" + QuickTime\ Player.app +" + "c:/Program Files (x86)/app/app.exe" + +" For automated FUSE mounts, you must register an extension with :file[x]type +" in one of the following formats: +" +" :filetype patterns FUSE_MOUNT|mount_cmd %SOURCE_FILE %DESTINATION_DIR +" +" %SOURCE_FILE and %DESTINATION_DIR are filled in at runtime. +" +" Example: +" :filetype *.zip,*.[jwe]ar FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR +" +" :filetype patterns FUSE_MOUNT2|mount_cmd %PARAM %DESTINATION_DIR +" +" %PARAM and %DESTINATION_DIR are filled in at runtime. +" +" Example: +" :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR +" +" %PARAM value is the first line of the matched file, example: root@127.0.0.1:/ +" +" You can also add %CLEAR if you want to clear screen before running FUSE +" program. There is also %FOREGROUND, which is useful for entering passwords. + +" Pdf +filetype {*.pdf}, + \ {Open in Preview} + \ open -a Preview.app, + \ {Open in Skim} + \ open -a Skim.app, +fileviewer {*.pdf}, pdftotext -nopgbrk %c - + +" PostScript +filetype {*.ps,*.eps,*.ps.gz}, open -a Preview.app + +" Djvu +filetype {*.djvu}, open -a MacDjView.app + +" Audio +filetype {*.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus, + \*.aac,*.mpga}, + \