Git Product home page Git Product logo

dotfiles's People

Contributors

zhimsel avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

dotfiles's Issues

Rework zsh prompt

Goals

  • Faster (most important)
  • Cleaner looking
  • No large dependencies (e.g. haskell for the git prompt)

Required information

  • User/host (only if on a remote machine)
  • Path (preferably truncated in some way)
  • Git branch/status (fast or async)
  • viins/vicmd mode
  • Previous command's return code
  • Previous command's run time (maybe)
  • Indicator for backgrounded programs

To-do

  • Settle on a prompt plugin (or manually created one)
  • Configure said prompt
  • Move "env metadata" parts to ZLE widget that displays the value of the configured env vars or command outputs with support for local additions (note to self: zle -R [display-string]). Maybe include more-detailed git status?
  • Figure out how to get git info to update when using the ^e ZLE widget.

Fix tig-explorer issues

https://github.com/iberianpig/tig-explorer.vim

For some reason, tig-explorer has a hard time returning to the correct buffer when it takes over a window.
When tig is closed, it often returns to the incorrect buffer.

It also is unable to deal with manually-set $GIT_DIR and $GIT_WORK_TREE env vars (when .git is not present).

I'll probably end up needing to rewrite a lot of the plugin.

To-do

  • Use $TIG_SCRIPT instead of hacking a temporary tigrc file; alternatively, call a custom config file that sources the users'.
  • Use -C option instead of having to temporarily lcd to the project root
  • Figure out how to restore the proper buffer

Reduce vim config bloat

Already did a first pass (2777087), but I think a second pass to remove the following would be a good idea:

  • Unused plugins
  • Unused settings
  • Unused bindings
  • Bindings where I should just learn/use the defaults

Switch to Lua config for Neovim

  • Switch init.vim to init.lua
  • Refactor "filetype settings" into ftplugin and ftdetect files
  • Rewrite core settings in Lua
  • Rewrite key maps in Lua
  • Figure out public/local settings
  • Autoload functions? or move them to plugins/
  • Switch to lazy.nvim
  • Move plugin-specific settings to ???
  • Set up impatient.nvim
  • Get colorscheme set up before plugins?

Fix cursor-shape inconsistencies

Between vim, zsh, and tmux, the cursor shape is often incorrect for the mode we're in. Switching between tmux panes retains the cursor shape of the previous pane, regardless of the now-current pane's ZLE/vim mode.

I'm thinking I may just stop using dynamic cursor shapes, and just use other indicators for vim/ZLE mode. Vim already has a mode indicator in the status line. #24 may do the same for ZLE as well.

Investigate using coc.vim

It may be too heavy-handed.
It may make linting dependencies easier to deal with.
It may be a good idea.
It may be a bad idea.
¯\_(ツ)_/¯

Fix vim-stay error on opening new files

"filename" [noeol][converted] 14843L, 766734C Error detected while processing function <SNR>56_LoadView[8]..stay#view#load: line 61: E121: Undefined variable: l:did_load_view E15: Invalid expression: l:did_load_view isnot 1 && exists('l:stay_loaded_view')

Split up zsh configs

The monolithic config files for zsh can be broken up into multiple, smaller files (maybe with ~/.zsh/rc.d/* like autoloading).

This makes it more natural to load machine-specific configs and it's a little easier to maintain, I think.

I can use number-prefixed files for ordered loading (e.g. ~/.zsh/rc.d/50-base.zsh).

To-do

  • Split existing config into number-prefixed *.d files
  • Figure out function/completion file autoloading

Refactor folder structure and symlinking

  • Rewrite install script in Python for better/smarter symlinking (don't rely on assumed paths)
    • Use .$file.link files for link destinations
    • Must be idempotent
    • make-based installer?
  • Reorganize config files by program/app (while smartly symlinking) #

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.