Skip to content

Commit

Permalink
adding fugitive
Browse files Browse the repository at this point in the history
  • Loading branch information
tenderlove committed Feb 15, 2010
1 parent c7f8ea7 commit ba43f99
Show file tree
Hide file tree
Showing 6 changed files with 2,121 additions and 3 deletions.
172 changes: 172 additions & 0 deletions colors/vividchalk.vim
@@ -0,0 +1,172 @@
" Vim color scheme
" Name: vividchalk.vim
" Author: Tim Pope <vimNOSPAM@tpope.info>
" GetLatestVimScripts: 1891 1 :AutoInstall: vividchalk.vim
" $Id: vividchalk.vim,v 1.8 2007-07-11 18:50:16 tpope Exp $

" Based on the Vibrank Ink theme for TextMate
" Distributable under the same terms as Vim itself (see :help license)

if has("gui_running")
set background=dark
endif
hi clear
if exists("syntax_on")
syntax reset
endif

let colors_name = "vividchalk"

" First two functions adapted from inkpot.vim

" map a urxvt cube number to an xterm-256 cube number
fun! s:M(a)
return strpart("0245", a:a, 1) + 0
endfun

" map a urxvt colour to an xterm-256 colour
fun! s:X(a)
if &t_Co == 88
return a:a
else
if a:a == 8
return 237
elseif a:a < 16
return a:a
elseif a:a > 79
return 232 + (3 * (a:a - 80))
else
let l:b = a:a - 16
let l:x = l:b % 4
let l:y = (l:b / 4) % 4
let l:z = (l:b / 16)
return 16 + s:M(l:x) + (6 * s:M(l:y)) + (36 * s:M(l:z))
endif
endif
endfun

function! E2T(a)
return s:X(a:a)
endfunction

function! s:choose(mediocre,good)
if &t_Co != 88 && &t_Co != 256
return a:mediocre
else
return s:X(a:good)
endif
endfunction

function! s:hifg(group,guifg,first,second,...)
if a:0 && &t_Co == 256
let ctermfg = a:1
else
let ctermfg = s:choose(a:first,a:second)
endif
exe "highlight ".a:group." guifg=".a:guifg." ctermfg=".ctermfg
endfunction

function! s:hibg(group,guibg,first,second)
let ctermbg = s:choose(a:first,a:second)
exe "highlight ".a:group." guibg=".a:guibg." ctermbg=".ctermbg
endfunction

hi link railsMethod PreProc
hi link rubyDefine Keyword
hi link rubySymbol Constant
hi link rubyAccess rubyMethod
hi link rubyAttribute rubyMethod
hi link rubyEval rubyMethod
hi link rubyException rubyMethod
hi link rubyInclude rubyMethod
hi link rubyStringDelimiter rubyString
hi link rubyRegexp Regexp
hi link rubyRegexpDelimiter rubyRegexp
"hi link rubyConstant Variable
"hi link rubyGlobalVariable Variable
"hi link rubyClassVariable Variable
"hi link rubyInstanceVariable Variable
hi link javascriptRegexpString Regexp
hi link javascriptNumber Number
hi link javascriptNull Constant

call s:hifg("Normal","#EEEEEE","White",87)
if &background == "light" || has("gui_running")
hi Normal guibg=Black ctermbg=Black
else
hi Normal guibg=Black ctermbg=NONE
endif
highlight StatusLine guifg=Black guibg=#aabbee gui=bold ctermfg=Black ctermbg=White cterm=bold
highlight StatusLineNC guifg=#444444 guibg=#aaaaaa gui=none ctermfg=Black ctermbg=Grey cterm=none
"if &t_Co == 256
"highlight StatusLine ctermbg=117
"else
"highlight StatusLine ctermbg=43
"endif
highlight WildMenu guifg=Black guibg=#ffff00 gui=bold ctermfg=Black ctermbg=Yellow cterm=bold
highlight Cursor guifg=Black guibg=White ctermfg=Black ctermbg=White
highlight CursorLine guibg=#333333 guifg=NONE
highlight CursorColumn guibg=#333333 guifg=NONE
highlight NonText guifg=#404040 ctermfg=8
highlight SpecialKey guifg=#404040 ctermfg=8
highlight Directory none
high link Directory Identifier
highlight ErrorMsg guibg=Red ctermbg=DarkRed guifg=NONE ctermfg=NONE
highlight Search guifg=NONE ctermfg=NONE gui=none cterm=none
call s:hibg("Search" ,"#555555","Black",81)
highlight IncSearch guifg=White guibg=Black ctermfg=White ctermbg=Black
highlight MoreMsg guifg=#00AA00 ctermfg=Green
highlight LineNr guifg=#DDEEFF ctermfg=White
call s:hibg("LineNr" ,"#222222","DarkBlue",80)
highlight Question none
high link Question MoreMsg
highlight Title guifg=Magenta ctermfg=Magenta
highlight VisualNOS gui=none cterm=none
call s:hibg("Visual" ,"#555577","LightBlue",83)
call s:hibg("VisualNOS" ,"#444444","DarkBlue",81)
highlight WarningMsg guifg=Red ctermfg=Red
highlight Folded guibg=#1100aa ctermbg=DarkBlue
call s:hibg("Folded" ,"#110077","DarkBlue",17)
call s:hifg("Folded" ,"#aaddee","LightCyan",63)
highlight FoldColumn none
high link FoldColumn Folded
highlight Pmenu guifg=White ctermfg=White gui=bold cterm=bold
highlight PmenuSel guifg=White ctermfg=White gui=bold cterm=bold
call s:hibg("Pmenu" ,"#000099","Blue",18)
call s:hibg("PmenuSel" ,"#5555ff","DarkCyan",39)
highlight PmenuSbar guibg=Grey ctermbg=Grey
highlight PmenuThumb guibg=White ctermbg=White
highlight TabLine gui=underline cterm=underline
call s:hifg("TabLine" ,"#bbbbbb","LightGrey",85)
call s:hibg("TabLine" ,"#333333","DarkGrey",80)
highlight TabLineSel guifg=White guibg=Black ctermfg=White ctermbg=Black
highlight TabLineFill gui=underline cterm=underline
call s:hifg("TabLineFill","#bbbbbb","LightGrey",85)
call s:hibg("TabLineFill","#808080","Grey",83)

hi Type gui=none
hi Statement gui=none
if !has("gui_mac")
" Mac GUI degrades italics to ugly underlining.
hi Comment gui=italic
hi railsUserClass gui=italic
hi railsUserMethod gui=italic
endif
hi Identifier cterm=none
" Commented numbers at the end are *old* 256 color values
"highlight PreProc guifg=#EDF8F9
call s:hifg("Comment" ,"#9933CC","DarkMagenta",34) " 92
" 26 instead?
call s:hifg("Constant" ,"#339999","DarkCyan",21) " 30
call s:hifg("rubyNumber" ,"#CCFF33","Yellow",60) " 190
call s:hifg("String" ,"#66FF00","LightGreen",44,82) " 82
call s:hifg("Identifier" ,"#FFCC00","Yellow",72) " 220
call s:hifg("Statement" ,"#FF6600","Brown",68) " 202
call s:hifg("PreProc" ,"#AAFFFF","LightCyan",47) " 213
call s:hifg("railsUserMethod","#AACCFF","LightCyan",27)
call s:hifg("Type" ,"#AAAA77","Grey",57) " 101
call s:hifg("railsUserClass" ,"#AAAAAA","Grey",7) " 101
call s:hifg("Special" ,"#33AA00","DarkGreen",24) " 7
call s:hifg("Regexp" ,"#44B4CC","DarkCyan",21) " 74
call s:hifg("rubyMethod" ,"#DDE93D","Yellow",77) " 191
"highlight railsMethod guifg=#EE1122 ctermfg=1
210 changes: 210 additions & 0 deletions doc/fugitive.txt
@@ -0,0 +1,210 @@
*fugitive.txt* a Git wrapper so awesome, it should be illegal

Author: Tim Pope <vimNOSPAM@tpope.info> *fugitive-author*
License: Same terms as Vim itself (see |license|)

This plugin is only available if 'compatible' is not set.

==============================================================================
INTRODUCTION *fugitive*

Install in ~/.vim, or in ~\vimfiles if you're on Windows and feeling lucky.
Vim 7.2 is recommended as it ships with syntax highlighting for many Git file
types.

If you're in a hurry to get started, here are some things to try:

In any file in your repository, run |:Gedit| HEAD. Press <CR> to jump to the
current branch. Press <CR> again to jump to the top most commit. Keep using
<CR> to explore parent commits, trees, and blobs. Use C in a tree or blob to
get back to the commit.

Edit a file in the work tree and make some changes. Use |:Gdiff| to open up
the indexed version. Use |do| and |dp| on various hunks to bring the files in
sync, or use |:Gread| to pull in all changes. Write the indexed version to
stage the file.

Run |:Gblame| in a work tree file to see a blame in a vertical split. Press
<CR> on any line to reopen and reblame that file as it stood in that commit.
Press o or O on any line to inspect that commit in a split or a tab.

Run |:Ggrep| to search the work tree or history. Run |:Gmove| to rename a
file. Run |:Gremove| to delete a file.

==============================================================================
COMMANDS *fugitive-commands*

These commands are local to the buffers in which they work (generally, buffers
that are part of Git repositories).

*fugitive-:Git*
:Git [args] Run an arbitrary git command. Similar to :!git [args]
but chdir to the repository tree first.

*fugitive-:Gcd*
:Gcd [directory] |:cd| relative to the repository.

*fugitive-:Glcd*
:Glcd [directory] |:lcd| relative to the repository.

*fugitive-:Gstatus*
:Gstatus Bring up the output of git-status in the preview
window. Press - to stage or unstage the file on the
cursor line. Press p to do so on a per hunk basis
(--patch). Press C to invoke |:Gcommit|.

*fugitive-:Gcommit*
:Gcommit [args] A wrapper around git-commit. If there is nothing
to commit, |:Gstatus| is called instead. Unless the
arguments given would skip the invocation of an editor
(e.g., -m), a split window will be used to obtain a
commit message. Write and close that window (:wq or
|:Gwrite|) to finish the commit. Unlike when running
the actual git-commit command, it is possible (but
unadvisable) to muck with the index with commands like
git-add and git-reset while a commit message is
pending.

*fugitive-:Ggrep*
:Ggrep [args] |:grep| with git-grep as 'grepprg'.

*fugitive-:Glog*
:Glog [args] Load all previous revisions of the current file into
the quickfix list. Additional git-log arguments can
be given (for example, --reverse). If "--" appears as
an argument, no file specific filtering is done, and
commits are loaded into the quickfix list.

*fugitive-:Gedit* *fugitive-:Ge*
:Gedit [revision] |:edit| a |fugitive-revision|.

*fugitive-:Gsplit*
:Gsplit [revision] |:split| a |fugitive-revision|.

*fugitive-:Gvsplit*
:Gvsplit [revision] |:vsplit| a |fugitive-revision|.

*fugitive-:Gtabedit*
:Gtabedit [revision] |:tabedit| a |fugitive-revision|

*fugitive-:Gpedit*
:Gpedit [revision] |:pedit| a |fugitive-revision|

*fugitive-:Gread*
:Gread [revision] Empty the buffer and |:read| a |fugitive-revision|.
When the argument is omitted, this is similar to
git-checkout on a work tree file or git-add on a stage
file, but without writing anything to disk.

:{range}Gread [revision]
|:read| in a |fugitive-revision| after {range}.

*fugitive-:Gread!*
:Gread! [revision] Deprecated synonym for |:Gread|.

*fugitive-:Gwrite*
:Gwrite Write to the current file's path and stage the results.
When run in a work tree file, it is effectively git
add. Elsewhere, it is effectively git-checkout. A
great deal of effort is expended to behave sensibly
when the work tree or index version of the file is
open in another buffer.

:Gwrite {path} You can give |:Gwrite| an explicit path of where in
the work tree to write. You can also give a path like
:0:foo.txt or even :0 to write to just that stage in
the index.

*fugitive-:Gdiff*
:Gdiff [revision] Perform a |vimdiff| against the current file in the
given revision. With no argument, the version in the
index is used (which means a three-way diff during a
merge conflict, making it a git-mergetool
alternative). The newer of the two files is placed
to the right. Use |do| and |dp| and write to the
index file to simulate "git add --patch".

*fugitive-:Gmove*
:Gmove {destination} Wrapper around git-mv that renames the buffer
afterward. The destination is relative to the current
directory except when started with a /, in which case
it is relative to the work tree. Add a ! to pass -f.

*fugitive-:Gremove*
:Gremove Wrapper around git-rm that deletes the buffer
afterward. When invoked in an index file, --cached is
passed. Add a ! to pass -f and forcefully discard the
buffer.

*fugitive-:Gblame*
:Gblame Run git-blame on the file and open the results in a
scroll bound vertical split. Press enter on a line to
reblame the file as it was in that commit.

:[range]Gblame Run git-blame on the given range.

==============================================================================
MAPPINGS *fugitive-mappings*

These maps are available in Git objects.

*fugitive-<CR>*
<CR> Jump to the revision under the cursor.

*fugitive-o*
o Jump to the revision under the cursor in a new split.

*fugitive-O*
O Jump to the revision under the cursor in a new tab.

*fugitive-~*
~ Go to the current file in the [count]th first
ancestor.

*fugitive-P*
P Go to the current file in the [count]th parent.

*fugitive-C*
C Go to the commit containing the current file.

*fugitive-a*
a Show the current tag, commit, or tree in an alternate
format.

==============================================================================
SPECIFYING REVISIONS *fugitive-revision*

Fugitive revisions are similar to Git revisions as defined in the "SPECIFYING
REVISIONS" section in the git-rev-parse man page. For commands that accept an
optional revision, the default is the file in the index for work tree files
and the work tree file for everything else. Example revisions follow.

Revision Meaning ~
HEAD .git/HEAD
master .git/refs/heads/master
HEAD^{} The commit referenced by HEAD
HEAD^ The parent of the commit referenced by HEAD
HEAD: The tree referenced by HEAD
/HEAD The file named HEAD in the work tree
Makefile The file named Makefile in the work tree
HEAD^:Makefile The file named Makefile in the parent of HEAD
:Makefile The file named Makefile in the index (writable)
- The current file in HEAD
^ The current file in the previous commit
~3 The current file 3 commits ago
: .git/index (Same as |:Gstatus|)
:0 The current file in the index
:1 The current file's common ancestor during a conflict
:2 The current file in the target branch during a conflict
:3 The current file in the merged branch during a conflict
:/foo The most recent commit with "foo" in the message

==============================================================================
ABOUT *fugitive-about*

Grab the latest version or report a bug on Github:

http://github.com/tpope/vim-fugitive

==============================================================================
vim:tw=78:et:ft=help:norl:
13 changes: 13 additions & 0 deletions ftplugin/markdown.vim
@@ -0,0 +1,13 @@
" markdown filetype file

if exists("did\_load\_filetypes")

finish

endif

augroup markdown

au! BufRead,BufNewFile *.markdown setfiletype mkd

augroup END

0 comments on commit ba43f99

Please sign in to comment.