christoomey / dotfiles Goto Github PK
View Code? Open in Web Editor NEWMy vim, zsh, git, tmux, and other config files and utility scripts.
License: MIT License
My vim, zsh, git, tmux, and other config files and utility scripts.
License: MIT License
Been a fun experiment, but I think its time to go back. Would like to still have Command-T esque fuzzy matching with this.
<C-s>
? to source a visually selected region of vimrcfunction! VisualSource()
let lines = GetVisualSelection()
let lines_list = split(lines, "^@")
for line in lines_list
execute line
endfor
normal! gv
endfunction
function! GetVisualSelection()
try
let a_save = @a
normal! gv"ay
return @a
finally
let @a = a_save
endtry
endfunction
vmap <C-s> <Esc>:call VisualSource()<cr>
Look into creating a rake task ala rbates rake install
. Break zshrc into separate files.
rbates dotfiles
zach homans dotfiles are meant to be forked blog post
Also ref this blog post: The cleanest vimrc you’ll ever see
Look into YADR - Opinionated dotfiles
git debranch <commit-sha> <new-branch-name>
Provide zsh list style tab completion (ala chmod <tab>
) including
a5d67fe - Revert this thing
3489ba - Make that change
Fail if uncommitted changes or in working directory or index
This looks like a good article on custom zsh tab completion scripts
Seems the brew version of vim on mountain lion has broken clipboard something.
http://vim.wikia.com/wiki/In_line_copy_and_paste_to_system_clipboard
This link has vim wrappers around system calls to pbcopy and pbpaste. Not perfect, but ok work around for now.
https://github.com/garybernhardt/dotfiles/blob/master/bin/rename-identifier
This handles opening Vim with relevant file list for given identifier and mappings for changing.
What about filenames and variants on identifier name, ie Project => projects
Vim takes a number of seconds to open when started within tmux. This is not the case outside tmux.
Meet bundler.vim. Worth it just for the internalized bundle open
. http://t.co/fy1mB7H
Base it off this gist. Remap caps to control
-f
option)git diff #{oldrev} #{newrev} --diff-filter=A --name-only -z db/migrate
Antigen allows for configuration via inclusion of plugin files very much like Vundle.
Also reference prezto for additional modular zsh configurations
Also look into grml
Similar is zgen
Also check out dotzsh for community managed plugins and completion.
Also zplug seems nifty
and awesome zsh plugins seems worth a peek
Scroollosse's Syntastic plugin for syntax checking goodness
Want an in context way to run a Google search and create a Markdown link for the top result. Thinking that shelling out to a simple script, ala Brett Terpstra's script here could make sense. Alternately, the GIFL plugin uses inline ruby within the plugin to do the fetching. Likewise, this could be accomplished with webapi-vim
Would like map for switching case of words. Particularly useful to title case some words, but could be more generally useful. Vimtips has a related tip
Also need to figure out how to setup local dictionary (for adding new words) and thesaurus
From tpope's vimfiles
if exists("+spelllang")
set spelllang=en_us
endif
set spellfile=~/.vim/spell/en.utf-8.add
setlocal spell spelllang=en_us
set spellfile=~/.vim/spellfile.add
set thesaurus+=/Users/sbrown/.vim/thesaurus/mthesaur.txt
Fan off formatoption+=a, but only while typing. Could I selectively enable it?
autocmd InsertEnter markdown call EnableWrapIfInParagraph()
autocmd InsertLeave markdown setlocal formatoptions-=a
function! EnableWrapIfInParagraph()
" code that looks at current line and preceding / following line to
" determine if currently in a 'paragraph'
setlocal formatoptions+=a " Enable automatic line wrapping
function
https://github.com/nother/vim-prose/blob/master/plugin/vimprose.vim
" set an undo point at the ends of sentences since it's common
" to write a fair amount before leaving insert mode.
inoremap <buffer> . .<C-g>u
inoremap <buffer> ! !<C-g>u
inoremap <buffer> ? ?<C-g>u
inoremap <buffer> : :<C-g>u
vim-pencil seems to ship with this, plus some other fun.
Another option would be to define a custom formatexpr, or to use the fo+=t
option which only updates while in insert mode.
I want to be able to hit <tab>
and <S-tab>
to jump bewteen the previous and next link or tag in the document. I then want to be able to hit <cr>
and either open the URL, or follow the wiki link. Currently having an issue with links that break across lines, ie>
this is a line with a [link that
spans lines](http://google.com)
Incorporate checks for passive voice, weasel words, etc. Ref this words to avoid script, as well as this list of plugins for prose. Perhaps it could be expanded to highlight various aspects of a piece of writing like hemingwayapp using a technique similar to easytags dynamic highlighting
Similar features were recently add to Draft. Consider using something like Vim marks to highlight words used multiple times.
Vim wordy is a plugin for hemingway like functionality in vim
Overarching vision => super easy management of bundles on both systems
Updates:
brew install macvim
and gvim install + Vundle recommendationsREM Note: this all must be run as Administrator (specifically the mklink)
cd /d %USERPROFILE%
mklink /d .vim .\code\dotfiles\vim
mkdir code\dotfiles\vim\bundles
git clone https://github.com/gmarik/vundle.git .vim\bundles\vundle
mklink _vimrc .\code\dotfiles\vim\vimrc
cd /d "\Program Files\Vim"
mklink /h _vimrc %USERPROFILE%\code\dotfiles\vim\windows_vimrc
REM Now open gVim and run :BundleInstall<cr>
I would like to be able to use Command-T to select from arbitrary lists. Based on the various matcher windows (buffer, file, tag, etc) it looks like it should be possible to do to this kind of thing. Browse the issues list to see if this has been discussed before?
The desired API would look something like:
" This function would return a vim list
let headings = ParseHeadingsList()
" This is the desired CommandT interface. It would take a
" vim list as input and provide the selected item as a return value.
let selectedHeading = CommandTGeneralWindow(headings)
This set of commits should contain a relevant change set to model after.
Create a completion script that will allow me to tab complete my sessions for ta
(tmux attach-session -t ).
Reference the oh-my-zsh plugins list
Share the .github file via dropbox and symlink to ~/.github. Source it in using gits new include config
Then get you some hub
seems like a prime candidate for the leader. Accesible and keeps both hands essentially free to tap out the rest of the mapping.
Would need to create a Space.vim variant that works with another key. thinking tab could work well as the replacement for space. Added bonus that the reverse mapping, Shift-Tab, should work in the termianl. Currenlty Space-tab does not.
git cpr
, but accept git cpr dev
to merge into dev
or other branchhttps://github.com/ecomba/vim-ruby-refactoring
Specifically interested in extract-method
Vim airline is a lightweight option similar to powerline
Another alternative is lightline
Vim-powerline is intense, but requires python and is in the midst of a rewrite
https://raw.github.com/sgharms/GIFL/
UltiSnippets blog post w/ screen cast
Snipmate has moved to a new fork managed by garbas.
UltiSnippets looks like it may be a superior option.
Also consider XPtemplate?
It should be able to seek out all configured leader mappings, preferably with where they are from.
<leader>ru
, then something else mapped to <leader>run
. The <leader>ru
map will hang while waiting to see if <leader>run
gets typed)Update the current ListMapShaddows() function to include both normal and visual mode mappings.
Can we put in something to highlight when one map overwrites another? With my config spread across multiple files I could end up redefining a map in different files.
Using AutoComplPop and so far liking it. New goal:
<C-j>``<C-k>
for up / downAdditionally, I would like to selectively enable disable AutoComplPop based on the current buffer:
I regularly will type something that is a substring of a longer match and autocomplpop basically wont let me finish the line with that substring. Enter should cut this off
Conversly, I almost never insert tab literals
Bundle directives can be sourced in by using this runtime include technique
The plugin should find each span of lines that do not match a regex (g:reformatter_matchers += /asdf/ ?) and then gq them to reformat.
Want this for blog posts. Ignore yaml frontmatter, skip code blocks and block quotes?
Use this to take current command and edit in vim. Useful for iterative building of multi setp piped commands.
# Stolen from Gary Bernhardt
# Use C-x C-e to edit the current command line
autoload -U edit-command-line
zle -N edit-command-line
bindkey '\C-x\C-e' edit-command-line
Really like how vimux simplifies the opening of a tmux pane for command running.
Need to integrate the test runners listed in the README. Want easy access to run current test file, run focused test, etc
Need to hook into the pane open command so that it moves to the root. This can be opted out of, but it seems that is the issue for the test runners as of now.
Would be nice to be able to use the tmux break-pane
functionality to dismiss test / runner pane, rather than fully closing it.
Snipmate has moved to a new fork managed by garbas.
UltiSnippets looks like it may be a superior option.
Also consider XPtemplate?
MagicTags is serving well for updating tags while editing in Vim. Need to
investigage how to keep in sync when I change things outside of Vim.
Vim Tags plugin magic:
ctags > tags.temp && mv tags.temp tags
)Keep them in ./.git
Consider Universal Ctags maintained fork. Per drew neil on twitter
Use gem-ctags from tpope for gem tags
Use bundler.vim to get vim to recognize the ctags in gems
Fugivitive.vim will already check for
Ripper tags better support for constants
Issue summary on vim-ruby repo wiki
Excellent .ctags file with ruby extensions
Consider integrating Gem Ctags
Also consider integrating EasyTags features, including syntax highlighting for tags
This guy wrote a detailed blog post on fancy tag manipulation as well as an
earlier blog post on interacting with the taglist.
Another blog post about Ctags vim browsing
Pure looks to be a very clean, minimal, fast prompt.
Liquid Prompt looks to be more full featured
Also consider implementing slower parts async per this post
Blocking issues:
torkale/dotvim@6a31833 to tor-ivry/dotvim added them, but a later commit removed them
Nice to have:
Check out this articale on lifehacker.
Of particular interest is the jumping between arguments hotkeys. Currently, looks like they are bound to Esc-B
& Esc-F
. Yuck. remap to Ctrl-B
& Ctrl-F
and then set Ctrl-Shift-B
& Ctrl-Shift-F
to the single letter motions currently on those mappings.
Current issues / desired features:
Prefix d
to detach, but won't pass anything to the underlying programs (vim, zsh, etc).+
to max, -
to minimize)Nice to haves:
Might want to incorporate this fix to allow copy paste
Complete:
list-sessions
provides a nice navigable list. How to open on enter?)Prefix C-l
)Map <tab>
to jump to next, <S-tab>
to previous
Would be nice to have the convenience of indent folding with the control of marker folding. Specifically looking at vimscript as an example of where this would be used, but I think it could be useful all over.
Vim Wiki Folding tips contains a note about how to do this.
Currently the mapping of ;
to :
sea to break space.vim with regard to g;
(go to last edit position) jumping. This needs fixed
Use the Giant Robots post as a starting point, but don't clear the tmux paste buffer list
It should be able to seek out all configured leader mappings, preferably with where they are from.
Figure out the most use git commands with args:
history | ack '^\s+\d+\s+g\s\w+\s\w'
Figure out the most used subcommands (checkout, stash, show, etc) and provide solid completion for them
Criteria for solid:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.