diff options
author | hut <hut@lepus.uberspace.de> | 2015-05-04 01:52:50 +0200 |
---|---|---|
committer | hut <hut@lepus.uberspace.de> | 2015-05-04 01:58:41 +0200 |
commit | 4a6b56581df93c71a0135f868055aa664cba782a (patch) | |
tree | 6ca135b02f374ea894c74708e0c25a5d935d38f5 | |
parent | fe459089fa965a58a863badbd093cc3fde03e3dc (diff) | |
download | ranger-4a6b56581df93c71a0135f868055aa664cba782a.tar.gz |
added examples/rc_emacs.conf
-rw-r--r-- | examples/rc_emacs.conf | 533 |
1 files changed, 533 insertions, 0 deletions
diff --git a/examples/rc_emacs.conf b/examples/rc_emacs.conf new file mode 100644 index 00000000..aab083f4 --- /dev/null +++ b/examples/rc_emacs.conf @@ -0,0 +1,533 @@ +# =================================================================== +# Compatible since ranger 1.7.0 +# +# By copying this file to ~/.config/ranger/rc.conf, ranger will be +# controllable with emacs-like key bindings. +# +# While this works well in combination with the default VIM-like key bindings, +# you may want to disable them by setting the environment variable +# RANGER_LOAD_DEFAULT_RC to FALSE. For example by adding this to your +# ~/.bashrc (if you use bash): +# +# export RANGER_LOAD_DEFAULT_RC=FALSE +# +# Each line is a command that will be run before the user interface +# is initialized. As a result, you can not use commands which rely +# on the UI such as :delete or :mark. +# =================================================================== + +# =================================================================== +# == Options +# =================================================================== + +# How many columns are there, and what are their relative widths? +set column_ratios 1,3,4 + +# Which files should be hidden? (regular expression) +set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$ + +# Show hidden files? You can toggle this by typing 'zh' +set show_hidden false + +# Ask for a confirmation when running the "delete" command? +# Valid values are "always", "never", "multiple" (default) +# With "multiple", ranger will ask only if you delete multiple files at once. +set confirm_on_delete multiple + +# Which script is used to generate file previews? +# ranger ships with scope.sh, a script that calls external programs (see +# README.md for dependencies) to preview images, archives, etc. +set preview_script ~/.config/ranger/scope.sh + +# Use the external preview script or display simple plain text or image previews? +set use_preview_script true + +# Automatically count files in the directory, even before entering them? +set automatically_count_files true + +# Open all images in this directory when running certain image viewers +# like feh or sxiv? You can still open selected files by marking them. +set open_all_images true + +# Be aware of version control systems and display information. +set vcs_aware false + +# State of the three backends git, hg, bzr. The possible states are +# disabled, local (only show local info), enabled (show local and remote +# information). +set vcs_backend_git enabled +set vcs_backend_hg disabled +set vcs_backend_bzr disabled + +# Use one of the supported image preview protocols +set preview_images false + +# Set the preview image method. Supported methods: +# +# * w3m (default): +# Preview images in full color with the external command "w3mimgpreview"? +# This requires the console web browser "w3m" and a supported terminal. +# It has been successfully tested with "xterm" and "urxvt" without tmux. +# +# * iterm2: +# Preview images in full color using iTerm2 image previews +# (http://iterm2.com/images.html). This requires using iTerm2 compiled +# with image preview support. +set preview_images_method w3m + +# Use a unicode "..." character to mark cut-off filenames? +set unicode_ellipsis false + +# Show dotfiles in the bookmark preview box? +set show_hidden_bookmarks true + +# Which colorscheme to use? These colorschemes are available by default: +# default, jungle, snow, solarized +set colorscheme default + +# Preview files on the rightmost column? +# And collapse (shrink) the last column if there is nothing to preview? +set preview_files true +set preview_directories true +set collapse_preview true + +# Save the console history on exit? +set save_console_history true + +# Draw the status bar on top of the browser window (default: bottom) +set status_bar_on_top false + +# Draw a progress bar in the status bar which displays the average state of all +# currently running tasks which support progress bars? +set draw_progress_bar_in_status_bar true + +# Draw borders around columns? +set draw_borders false + +# Display the directory name in tabs? +set dirname_in_tabs false + +# Enable the mouse support? +set mouse_enabled true + +# Display the file size in the main column or status bar? +set display_size_in_main_column true +set display_size_in_status_bar true + +# Display files tags in all columns or only in main column? +set display_tags_in_all_columns true + +# Set a title for the window? +set update_title false + +# Set the title to "ranger" in the tmux program? +set update_tmux_title false + +# Shorten the title if it gets long? The number defines how many +# directories are displayed at once, 0 turns off this feature. +set shorten_title 3 + +# Abbreviate $HOME with ~ in the titlebar (first line) of ranger? +set tilde_in_titlebar false + +# How many directory-changes or console-commands should be kept in history? +set max_history_size 20 +set max_console_history_size 50 + +# Try to keep so much space between the top/bottom border when scrolling: +set scroll_offset 8 + +# Flush the input after each key hit? (Noticable when ranger lags) +set flushinput true + +# Padding on the right when there's no preview? +# This allows you to click into the space to run the file. +set padding_right true + +# Save bookmarks (used with mX and `X) instantly? +# This helps to synchronize bookmarks between multiple ranger +# instances but leads to *slight* performance loss. +# When false, bookmarks are saved when ranger is exited. +set autosave_bookmarks true + +# You can display the "real" cumulative size of directories by using the +# command :get_cumulative_size or typing "dc". The size is expensive to +# calculate and will not be updated automatically. You can choose +# to update it automatically though by turning on this option: +set autoupdate_cumulative_size false + +# Turning this on makes sense for screen readers: +set show_cursor false + +# One of: size, natural, basename, atime, ctime, mtime, type, random +set sort natural + +# Additional sorting options +set sort_reverse false +set sort_case_insensitive true +set sort_directories_first true +set sort_unicode false + +# Enable this if key combinations with the Alt Key don't work for you. +# (Especially on xterm) +set xterm_alt_key false + +# Whether to include bookmarks in cd command +set cd_bookmarks true + +# Avoid previewing files larger than this size, in bytes. Use a value of 0 to +# disable this feature. +set preview_max_size 0 + +# Add the highlighted file to the path in the titlebar +set show_selection_in_titlebar true + +# The delay that ranger idly waits for user input, in milliseconds, with a +# resolution of 100ms. Lower delay reduces lag between directory updates but +# increases CPU load. +set idle_delay 2000 + +# When the metadata manager module looks for metadata, should it only look for +# a ".metadata.json" file in the current directory, or do a deep search and +# check all directories above the current one as well? +set metadata_deep_search false + +# =================================================================== +# == Local Options +# =================================================================== +# You can set local options that only affect a single directory. + +# Examples: +# setlocal path=~/downloads sort mtime + +# =================================================================== +# == Command Aliases in the Console +# =================================================================== + +alias e edit +alias q quit +alias q! quitall +alias qa quitall +alias qall quitall +alias setl setlocal + +alias filter scout -prt +alias find scout -aeit +alias mark scout -mr +alias unmark scout -Mr +alias search scout -rs +alias search_inc scout -rts +alias travel scout -aefiklst + +# =================================================================== +# == Define keys for the browser +# =================================================================== + +# Basic +map <C-x><C-c> quit! +map <C-x>k quit + +map <C-x>R reload_cwd +map <C-x><C-r> reset +map <C-l> redraw_window +map <C-g> chain abort; change_mode normal; mark_files all=True val=False + +map <C-x>i display_file +map <C-h> help +map <C-x>W display_log +map <C-x>w taskview_open + +map <A-x> console +map <A-!> console shell%space +map <A-f> chain draw_possible_programs; console open_with%space + +# Change the line mode +map <C-x>mf linemode filename +map <C-x>mi linemode fileinfo +map <C-x>mp linemode permissions +map <C-x>mt linemode metatitle + +# Tagging / Marking +map <C-x>t<any> tag_toggle tag=%any +map <C-_>t tag_remove +map <Space> mark_files toggle=True +map <C-Space> toggle_visual_mode + +# For the nostalgics: Midnight Commander bindings +map <F1> help +map <F3> display_file +map <F4> edit +map <F5> copy +map <F6> cut +map <F7> console mkdir%space +map <F8> console delete +map <F10> exit + +# Direction keys +map <UP> move up=1 +map <DOWN> move down=1 +map <LEFT> move left=1 +map <RIGHT> move right=1 +map <HOME> move to=0 +map <END> move to=-1 +map <PAGEDOWN> move down=1 pages=True +map <PAGEUP> move up=1 pages=True +map <CR> move right=1 +#map <DELETE> console delete +map <INSERT> console touch%space + +copymap <UP> <C-p> +copymap <DOWN> <C-n> +copymap <LEFT> <C-b> +copymap <RIGHT> <C-f> +copymap <HOME> <A-LT> +copymap <END> <A-GT> +copymap <PAGEDOWN> <A-v> +copymap <PAGEUP> <C-v> + +# Jumping around +map <C-u><C-space> history_go -1 +map <A-}> move_parent 1 +map <A-{> move_parent -1 + +map <C-x>gh cd ~ +map <C-x>ge cd /etc +map <C-x>gu cd /usr +map <C-x>gd cd /dev +map <C-x>gl cd -r . +map <C-x>gL cd -r %f +map <C-x>go cd /opt +map <C-x>gv cd /var +map <C-x>gm cd /media +map <C-x>gM cd /mnt +map <C-x>gs cd /srv +map <C-x>gr cd / +map <C-x>gR eval fm.cd(ranger.RANGERDIR) +map <C-x>g/ cd / +map <C-x>g? cd /usr/share/doc/ranger + +# External Programs +map <C-x><C-f> edit +map <C-x>du shell -p du --max-depth=1 -h --apparent-size +map <C-x>dU shell -p du --max-depth=1 -h --apparent-size | sort -rh +map <C-x>wp shell -f echo -n %d/%f | xsel -i; xsel -o | xsel -i -b +map <C-x>wd shell -f echo -n %d | xsel -i; xsel -o | xsel -i -b +map <C-x>wn shell -f echo -n %f | xsel -i; xsel -o | xsel -i -b + +# Filesystem Operations +map <C-x>= chmod + +map <A-d> console rename%space +map <C-e> eval fm.open_console('rename ' + fm.thisfile.basename) +map <C-a> eval fm.open_console('rename ' + fm.thisfile.basename, position=7) + +map <C-y>y paste +map <C-y>o paste overwrite=True +map <C-y>l paste_symlink relative=False +map <C-y>L paste_symlink relative=True +map <C-y>hl paste_hardlink +map <C-y>ht paste_hardlinked_subtree + +map <C-w> cut +map <C-_>w uncut +map <C-x><C-w>a cut mode=add +map <C-x><C-w>r cut mode=remove + +map <A-w> copy +map <C-x><A-w>a copy mode=add +map <C-x><A-w>r copy mode=remove + +# Searching +map <C-x>s console search_inc%space +map <C-s> search_next +map <C-r> search_next forward=False + +# Tabs +#map <C-n> tab_new ~ +map <C-x>b tab_move 1 +map <A-Right> tab_move 1 +map <A-Left> tab_move -1 +map <C-x>f tab_new ~ +map <C-_>k tab_restore +map <a-1> tab_open 1 +map <a-2> tab_open 2 +map <a-3> tab_open 3 +map <a-4> tab_open 4 +map <a-5> tab_open 5 +map <a-6> tab_open 6 +map <a-7> tab_open 7 +map <a-8> tab_open 8 +map <a-9> tab_open 9 + + +# Sorting +map <C-x>or toggle_option sort_reverse +map <C-x>oz set sort=random +map <C-x>os chain set sort=size; set sort_reverse=False +map <C-x>ob chain set sort=basename; set sort_reverse=False +map <C-x>on chain set sort=natural; set sort_reverse=False +map <C-x>om chain set sort=mtime; set sort_reverse=False +map <C-x>oc chain set sort=ctime; set sort_reverse=False +map <C-x>oa chain set sort=atime; set sort_reverse=False +map <C-x>ot chain set sort=type; set sort_reverse=False +map <C-x>oe chain set sort=extension; set sort_reverse=False + +map <C-x>oS chain set sort=size; set sort_reverse=True +map <C-x>oB chain set sort=basename; set sort_reverse=True +map <C-x>oN chain set sort=natural; set sort_reverse=True +map <C-x>oM chain set sort=mtime; set sort_reverse=True +map <C-x>oC chain set sort=ctime; set sort_reverse=True +map <C-x>oA chain set sort=atime; set sort_reverse=True +map <C-x>oT chain set sort=type; set sort_reverse=True +map <C-x>oE chain set sort=extension; set sort_reverse=True + +map <C-x>dc get_cumulative_size + +# Settings +map <C-x>zc toggle_option collapse_preview +map <C-x>zd toggle_option sort_directories_first +map <C-x>zh toggle_option show_hidden +map <C-x>zi toggle_option flushinput +map <C-x>zm toggle_option mouse_enabled +map <C-x>zp toggle_option preview_files +map <C-x>zP toggle_option preview_directories +map <C-x>zs toggle_option sort_case_insensitive +map <C-x>zu toggle_option autoupdate_cumulative_size +map <C-x>zv toggle_option use_preview_script +map <C-x>zf console filter%space + +# Bookmarks +map <C-x>rb<any> enter_bookmark %any +map <C-x>rm<any> set_bookmark %any +map <C-x>ru<any> unset_bookmark %any + +map <C-x>rb<bg> draw_bookmarks +copymap <C-x>rb<bg> <C-x>rm<bg> <C-x>ru<bg> + +# Generate all the chmod bindings with some python help: +eval for arg in "rwxXst": cmd("map <C-x>+u{0} shell -f chmod u+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map <C-x>+g{0} shell -f chmod g+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map <C-x>+o{0} shell -f chmod o+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map <C-x>+a{0} shell -f chmod a+{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map <C-x>+{0} shell -f chmod u+{0} %s".format(arg)) + +eval for arg in "rwxXst": cmd("map <C-x>-u{0} shell -f chmod u-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map <C-x>-g{0} shell -f chmod g-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map <C-x>-o{0} shell -f chmod o-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map <C-x>-a{0} shell -f chmod a-{0} %s".format(arg)) +eval for arg in "rwxXst": cmd("map <C-x>-{0} shell -f chmod u-{0} %s".format(arg)) + +# Search for letters as you type them +#eval for arg in "abcdefghijklmnopqrstuvwxyz": cmd("map {0} console search_inc {0}".format(arg)) +map <allow_quantifiers> false + +# =================================================================== +# == Define keys for the console +# =================================================================== +# Note: Unmapped keys are passed directly to the console. + +# Basic +cmap <tab> eval fm.ui.console.tab() +cmap <s-tab> eval fm.ui.console.tab(-1) +cmap <C-g> eval fm.ui.console.close() +cmap <CR> eval fm.ui.console.execute() +cmap <C-l> redraw_window + +copycmap <C-g> <esc> +copycmap <CR> <C-j> + +# Move around +cmap <up> eval fm.ui.console.history_move(-1) +cmap <down> eval fm.ui.console.history_move(1) +cmap <left> eval fm.ui.console.move(left=1) +cmap <right> eval fm.ui.console.move(right=1) +cmap <home> eval fm.ui.console.move(right=0, absolute=True) +cmap <end> eval fm.ui.console.move(right=-1, absolute=True) + +# Line Editing +cmap <backspace> eval fm.ui.console.delete(-1) +cmap <delete> eval fm.ui.console.delete(0) +cmap <C-w> eval fm.ui.console.delete_word() +cmap <C-k> eval fm.ui.console.delete_rest(1) +cmap <C-u> eval fm.ui.console.delete_rest(-1) +cmap <C-y> eval fm.ui.console.paste() + +# And of course the emacs way +copycmap <up> <C-p> +copycmap <down> <C-n> +copycmap <left> <C-b> +copycmap <right> <C-f> +copycmap <home> <C-a> +copycmap <end> <C-e> +copycmap <delete> <C-d> +copycmap <backspace> <C-h> + +# Note: There are multiple ways to express backspaces. <backspace> (code 263) +# and <backspace2> (code 127). To be sure, use both. +copycmap <backspace> <backspace2> + +# This special expression allows typing in numerals: +cmap <allow_quantifiers> false + +# =================================================================== +# == Pager Keybindings +# =================================================================== + +# Movement +pmap <down> pager_move down=1 +pmap <up> pager_move up=1 +pmap <left> pager_move left=4 +pmap <right> pager_move right=4 +pmap <home> pager_move to=0 +pmap <end> pager_move to=-1 +pmap <pagedown> pager_move down=1.0 pages=True +pmap <pageup> pager_move up=1.0 pages=True + +copypmap <UP> <C-p> +copypmap <DOWN> <C-n> <CR> +copypmap <LEFT> <C-b> +copypmap <RIGHT> <C-f> +copypmap <HOME> <A-LT> +copypmap <END> <A-GT> +copypmap <PAGEDOWN> <C-F> <A-v> <Space> +copypmap <PAGEUP> <C-B> <C-v> + +# Basic +pmap <C-l> redraw_window +pmap <C-g> pager_close +copypmap <C-g> q Q i <F3> +pmap E edit_file + +# =================================================================== +# == Taskview Keybindings +# =================================================================== + +# Movement +tmap <up> taskview_move up=1 +tmap <down> taskview_move down=1 +tmap <home> taskview_move to=0 +tmap <end> taskview_move to=-1 +tmap <pagedown> taskview_move down=1.0 pages=True +tmap <pageup> taskview_move up=1.0 pages=True +tmap <C-d> taskview_move down=0.5 pages=True +tmap <C-u> taskview_move up=0.5 pages=True + +copytmap <UP> k <C-p> +copytmap <DOWN> j <C-n> <CR> +copytmap <HOME> g +copytmap <END> G +copytmap <C-u> u +copytmap <PAGEDOWN> n f <C-F> <Space> +copytmap <PAGEUP> p b <C-B> + +# Changing priority and deleting tasks +tmap <A-n> eval -q fm.ui.taskview.task_move(-1) +tmap <A-p> eval -q fm.ui.taskview.task_move(0) +tmap <C-d> eval -q fm.ui.taskview.task_remove() +tmap <pagedown> eval -q fm.ui.taskview.task_move(-1) +tmap <pageup> eval -q fm.ui.taskview.task_move(0) +tmap <delete> eval -q fm.ui.taskview.task_remove() + +# Basic +tmap <C-l> redraw_window +tmap <C-g> taskview_close |