@@ -1,26 +0,0 @@ | |||
# enable color support of ls and also add handy aliases | |||
if [ -x /usr/bin/dircolors ]; then | |||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" | |||
alias ls='ls -CF --color=auto' | |||
alias dir='dir --color=auto' | |||
alias vdir='vdir --color=auto' | |||
alias grep='grep --color=auto' | |||
alias fgrep='fgrep --color=auto' | |||
alias egrep='egrep --color=auto' | |||
fi | |||
# some more ls aliases | |||
alias ll='ls -alF' | |||
alias la='ls -A' | |||
alias l='ls -CF' | |||
# Add an "alert" alias for long running commands. Use like so: | |||
# sleep 10; alert | |||
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' | |||
# Make emacs more less shitty | |||
alias e='emacs -nw' | |||
#heuh, smacs | |||
alias smacs='sudo emacs -nw' |
@@ -1,136 +0,0 @@ | |||
# ~/.bashrc: executed by bash(1) for non-login shells. | |||
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) | |||
# for examples | |||
# If not running interactively, don't do anything | |||
[ -z "$PS1" ] && return | |||
# don't put duplicate lines in the history. See bash(1) for more options | |||
# ... or force ignoredups and ignorespace | |||
HISTCONTROL=ignoredups:ignorespace | |||
# append to the history file, don't overwrite it | |||
shopt -s histappend | |||
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) | |||
HISTSIZE=1000 | |||
HISTFILESIZE=2000 | |||
# check the window size after each command and, if necessary, | |||
# update the values of LINES and COLUMNS. | |||
shopt -s checkwinsize | |||
# make less more friendly for non-text input files, see lesspipe(1) | |||
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" | |||
# set variable identifying the chroot you work in (used in the prompt below) | |||
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then | |||
debian_chroot=$(cat /etc/debian_chroot) | |||
fi | |||
export TERM='screen' | |||
# Alias definitions. | |||
# You may want to put all your additions into a separate file like | |||
# ~/.bash_aliases, instead of adding them here directly. | |||
# See /usr/share/doc/bash-doc/examples in the bash-doc package. | |||
if [ -f ~/.bash_aliases ]; then | |||
. ~/.bash_aliases | |||
fi | |||
# enable programmable completion features (you don't need to enable | |||
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile | |||
# sources /etc/bash.bashrc). | |||
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then | |||
. /etc/bash_completion | |||
fi | |||
# interface | |||
# ANSI CODES - SEPARATE MULTIPLE VALUES WITH ; | |||
# | |||
# 0 reset 4 underline | |||
# 1 bold 7 inverse | |||
# | |||
# FG BG COLOR FG BG COLOR | |||
# 30 40 black 34 44 blue | |||
# 31 41 red 35 45 magenta | |||
# 32 42 green 36 46 cyan | |||
# 33 43 yellow 37 47 white | |||
if [[ ! "${prompt_colors[@]}" ]]; then | |||
prompt_colors=( | |||
"0;37" # information color | |||
"0;32" # bracket color | |||
"0;31" # error color | |||
"0;34" # git color | |||
"0;33" # git bracket color | |||
"0;33" # $ color | |||
) | |||
if [[ "$SSH_TTY" ]]; then | |||
# connected via ssh | |||
prompt_colors[1]="1;32" | |||
elif [[ "$USER" == "root" ]]; then | |||
# logged in as root | |||
prompt_colors[1]="1;31" | |||
fi | |||
fi | |||
# Inside a prompt function, run this alias to setup local $c0-$c9 color vars. | |||
alias prompt_getcolors='prompt_colors[9]=; local i; for i in ${!prompt_colors[@]}; do local c$i="\[\e[0;${prompt_colors[$i]}m\]"; done' | |||
# Git status. | |||
function prompt_git() { | |||
prompt_getcolors | |||
local status output flags | |||
status="$(git status 2>/dev/null)" | |||
[[ $? != 0 ]] && return; | |||
output="$(echo "$status" | awk '/# Initial commit/ {print "(init)"}')" | |||
[[ "$output" ]] || output="$(echo "$status" | awk '/# On branch/ {print $4}')" | |||
[[ "$output" ]] || output="$(git branch | perl -ne '/^\* (.*)/ && print $1')" | |||
flags="$( | |||
echo "$status" | awk 'BEGIN {r=""} \ | |||
/Changes to be committed:/ {r=r "+"}\ | |||
/Changes not staged for commit:/ {r=r "!"}\ | |||
/Untracked files:/ {r=r "?"}\ | |||
END {print r}' | |||
)" | |||
if [[ "$flags" ]]; then | |||
output="$output$c4:$c3$flags" | |||
fi | |||
echo "$c1-$c3$output$c1$c9" | |||
} | |||
function prompt_command() { | |||
local exit_code=$? | |||
local pad=`printf "%03d" $exit_code` | |||
# If the first command in the stack is prompt_command, no command was run. | |||
# Set exit_code to 0 and reset the stack. | |||
[[ "${prompt_stack[0]}" == "prompt_command" ]] && exit_code=0 | |||
prompt_stack=() | |||
# Manually load z here, after $? is checked, to keep $? from being clobbered. | |||
[[ "$(type -t _z)" ]] && _z --add "$(pwd -P 2>/dev/null)" 2>/dev/null | |||
# While the simple_prompt environment var is set, disable the awesome prompt. | |||
[[ "$simple_prompt" ]] && PS1='\n$ ' && return | |||
prompt_getcolors | |||
PS1="\n" | |||
# misc: [cmd#] | |||
#PS1="$PS1$c1[$c0#\#$c1]$c9" | |||
# name: user@host:path | |||
PS1="$PS1$pad $c1\u $c0\w$c1$c9" | |||
# git: [branch:flags] | |||
PS1="$PS1$(prompt_git)" | |||
if [[ "$USER" == "root" ]]; then | |||
PS1="$PS1$c1 #\[\033[0;37m\] " | |||
else | |||
PS1="$PS1$c5 \$\[\033[0;37m\] " | |||
fi | |||
# Update the title with location | |||
echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007" | |||
} | |||
PROMPT_COMMAND='prompt_command' |
@@ -1 +0,0 @@ | |||
set colored-stats on |
@@ -1,166 +0,0 @@ | |||
set aaa_mode=all | |||
set altformat_current= %F | |||
set altformat_playlist= %f%= %d | |||
set altformat_title=%f | |||
set altformat_trackwin= %f%= %d | |||
set auto_reshuffle=true | |||
set buffer_seconds=10 | |||
set color_cmdline_attr=default | |||
set color_cmdline_bg=default | |||
set color_cmdline_fg=red | |||
set color_cur_sel_attr=default | |||
set color_error=red | |||
set color_info=lightyellow | |||
set color_separator=default | |||
set color_statusline_attr=default | |||
set color_statusline_bg=default | |||
set color_statusline_fg=white | |||
set color_titleline_attr=default | |||
set color_titleline_bg=default | |||
set color_titleline_fg=lightyellow | |||
set color_win_attr=default | |||
set color_win_bg=default | |||
set color_win_cur=red | |||
set color_win_cur_sel_attr=default | |||
set color_win_cur_sel_bg=red | |||
set color_win_cur_sel_fg=white | |||
set color_win_dir=blue | |||
set color_win_fg=default | |||
set color_win_inactive_cur_sel_attr=default | |||
set color_win_inactive_cur_sel_bg=default | |||
set color_win_inactive_cur_sel_fg=lightyellow | |||
set color_win_inactive_sel_attr=default | |||
set color_win_inactive_sel_bg=default | |||
set color_win_inactive_sel_fg=lightblue | |||
set color_win_sel_attr=default | |||
set color_win_sel_bg=red | |||
set color_win_sel_fg=black | |||
set color_win_title_attr=default | |||
set color_win_title_bg=default | |||
set color_win_title_fg=lightyellow | |||
set confirm_run=true | |||
set continue=true | |||
set device=/dev/cdrom | |||
set display_artist_sort_name=false | |||
set dsp.alsa.device= | |||
set dsp.ao.buffer_size=16384 | |||
set dsp.ao.driver= | |||
set dsp.ao.wav_counter=1 | |||
set dsp.ao.wav_dir=/home/paul | |||
set format_current= %a - %l -%3n. %t%= %y | |||
set format_playlist= %-25%a %3n. %t%= %y %d | |||
set format_playlist_va= %-25%A %3n. %t (%a)%= %y %d | |||
set format_title=%a - %l - %t (%y) | |||
set format_trackwin=%3n. %t%= %y %d | |||
set format_trackwin_va=%3n. %t (%a)%= %y %d | |||
set icecast_default_charset=ISO-8859-1 | |||
set id3_default_charset=ISO-8859-1 | |||
set input.cdio.cddb_url=freedb.freedb.org:8880 | |||
set lib_sort=albumartist date album discnumber tracknumber title filename | |||
set mixer.alsa.channel= | |||
set mixer.alsa.device= | |||
set mixer.pulse.restore_volume=1 | |||
set output_plugin=pulse | |||
set passwd= | |||
set pl_sort= | |||
set play_library=true | |||
set play_sorted=false | |||
set repeat=false | |||
set repeat_current=false | |||
set replaygain=disabled | |||
set replaygain_limit=true | |||
set replaygain_preamp=6.000000 | |||
set resume=false | |||
set scroll_offset=2 | |||
set set_term_title=true | |||
set show_current_bitrate=false | |||
set show_hidden=false | |||
set show_remaining_time=false | |||
set shuffle=false | |||
set skip_track_info=false | |||
set smart_artist_sort=true | |||
set softvol=false | |||
set softvol_state=0 0 | |||
set status_display_program= | |||
set wrap_search=true | |||
bind browser backspace browser-up | |||
bind browser i toggle show_hidden | |||
bind browser space win-activate | |||
bind browser u win-update | |||
bind common ! push shell | |||
bind common + vol +10% | |||
bind common , seek -1m | |||
bind common - vol -10% | |||
bind common . seek +1m | |||
bind common 1 view tree | |||
bind common 2 view sorted | |||
bind common 3 view playlist | |||
bind common 4 view queue | |||
bind common 5 view browser | |||
bind common 6 view filters | |||
bind common 7 view settings | |||
bind common = vol +10% | |||
bind common C toggle continue | |||
bind common D win-remove | |||
bind common E win-add-Q | |||
bind common F push filter | |||
bind common G win-bottom | |||
bind common I echo {} | |||
bind common L push live-filter | |||
bind common M toggle play_library | |||
bind common N search-prev | |||
bind common P win-mv-before | |||
bind common U win-update-cache | |||
bind common [ vol +1% +0 | |||
bind common ] vol +0 +1% | |||
bind common ^B win-next | |||
bind common ^C echo Type :quit<enter> to exit cmus. | |||
bind common ^F win-next | |||
bind common ^L refresh | |||
bind common ^N win-down | |||
bind common ^P win-up | |||
bind common ^R toggle repeat_current | |||
bind common a win-add-l | |||
bind common b player-next | |||
bind common c player-pause | |||
bind common delete win-remove | |||
bind common down win-down | |||
bind common e win-add-q | |||
bind common end win-bottom | |||
bind common enter win-activate | |||
bind common g win-top | |||
bind common h seek -5 | |||
bind common home win-top | |||
bind common i win-sel-cur | |||
bind common j win-down | |||
bind common k win-up | |||
bind common l seek +5 | |||
bind common left seek -5 | |||
bind common m toggle aaa_mode | |||
bind common n search-next | |||
bind common o toggle play_sorted | |||
bind common p win-mv-after | |||
bind common page_down win-page-down | |||
bind common page_up win-page-up | |||
bind common q quit -i | |||
bind common r toggle repeat | |||
bind common right seek +5 | |||
bind common s toggle shuffle | |||
bind common space win-toggle | |||
bind common t toggle show_remaining_time | |||
bind common tab win-next | |||
bind common u update-cache | |||
bind common up win-up | |||
bind common v player-stop | |||
bind common x player-play | |||
bind common y win-add-p | |||
bind common z player-prev | |||
bind common { vol -1% -0 | |||
bind common } vol -0 -1% | |||
fset 90s=date>=1990&date<2000 | |||
fset classical=genre="Classical" | |||
fset missing-tag=!stream&(artist=""|album=""|title=""|tracknumber=-1|date=-1) | |||
fset mp3=filename="*.mp3" | |||
fset ogg=filename="*.ogg" | |||
fset ogg-or-mp3=ogg|mp3 | |||
factivate |
@@ -1,14 +0,0 @@ | |||
quit | |||
live-filter | |||
add ~/music/ | |||
add | |||
colorscheme screenshot | |||
colorscheme default | |||
colorscheme | |||
live-filter : | |||
bind -f common ^B win-next | |||
bind -f common ^F win-next | |||
bind -f common ^P win-up | |||
bind -f common ^N win-down | |||
bind -f common ^n win-down | |||
bind -f browser space win-activate |
@@ -1,273 +0,0 @@ | |||
/home/paul/music/SaReGaMa - Kalimba solo for Lotus.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Silver White Light-Live at the Isle of Wight 1970-2004/01. speak now or forever hold your peace.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Silver White Light-Live at the Isle of Wight 1970-2004/02. things to try.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Silver White Light-Live at the Isle of Wight 1970-2004/03. c'mon mary.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Silver White Light-Live at the Isle of Wight 1970-2004/04. silver white light.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Silver White Light-Live at the Isle of Wight 1970-2004/05. july.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Silver White Light-Live at the Isle of Wight 1970-2004/06. without expression.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Silver White Light-Live at the Isle of Wight 1970-2004/07. dean.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Silver White Light-Live at the Isle of Wight 1970-2004/08. no good situation.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Silver White Light-Live at the Isle of Wight 1970-2004/09. rich kid blues_to be alone with you.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 12 - Without Expression.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 13 - Sweater.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 14 - Something's Gotten Hold Of My Heart.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 15 - Season Of The Witch.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 16 - Writing On The Wall_Summertime Blues.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 17 - When I Get Home.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 18 - Loving Time.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 19 - Without Expression(2003 mix).mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 01 - Superlungs My Supergirl.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 02 - Silver White Light.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 03 - July.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 04 - Marking Time.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 05 - Stay With Me Baby.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 06 - Highway 61 Revisited_Friends_Highway 61 Revisited.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 07 - May Fly.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 08 - Speak Now Or Forever Hold Your Peace.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 09 - Rich Kid Blues.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 10 - Highway 61 Revisited(2003 mix).mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 11 - Funny How Time Slips away (first 'demo' version).mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 12 - I'll Take Good Care Of You (first 'demo' version).mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 13 - Ain't That Peculiar.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 14 - I've Got News For You.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 15 - Summer Sequence.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 16 - Zodiac Blues.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 17 - Penny.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 2-2004/Terry Reid - Super Lungs Disk 2 - 18 - Rich Old Lady.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 1/01. Grateful Dead - New, New Minglewood Blues.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 1/02. Grateful Dead - Cosmic Charlie.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 1/03. Grateful Dead - Truckin'.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 1/04. Grateful Dead - Black Peter.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 1/05. Grateful Dead - Born Cross-Eyed.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 1/06. Grateful Dead - Ripple.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 1/07. Grateful Dead - Doin' That Rag.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 1/08. Grateful Dead - Dark Star.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 1/09. Grateful Dead - High Time.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 1/10. Grateful Dead - New Speedway Boogie.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 2/01. Grateful Dead - St. Stephen.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 2/02. Grateful Dead - Jack Straw.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 2/03. Grateful Dead - Me & My Uncle.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 2/04. Grateful Dead - Tenessee Jed.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 2/05. Grateful Dead - Cumberland Blues.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 2/06. Grateful Dead - Playing in the Band.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 2/07. Grateful Dead - Brown-Eyed Woman.mp3 | |||
/home/paul/music/The Grateful Dead, The Best of /CD 2/08. Grateful Dead - Ramble on Rose.mp3 | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/01 - Good Times Bad Times.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/02 - Babe I'm Gonna Leave You.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/03 - You Shook Me.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/04 - Dazed And Confused.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/05 - Your Time Is Gonna Come.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/06 - Black Mountain Side.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/07 - Communication Breakdown.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/08 - I Can't Quit You Baby.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/09 - How Many More Times.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/10 - Good Times Bad Times, Communication Breakdown (Live in Paris 1969).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/11 - I Can't Quit You Baby (Live in Paris 1969).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/12 - Heartbreaker (Live in Paris 1969).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/13 - Dazed And Confused (Live in Paris 1969).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/14 - White Summer, Black Mountain Side (Live in Paris 1969).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/15 - You Shook Me (Live in Paris 1969).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/16 - Moby Dick (Live in Paris 1969).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin I [Atlantic Vinyl Reissue 24-96 FLAC][2014]/17 - How Many More Times (Live in Paris 1969).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/01 - Whole Lotta Love.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/02 - What Is And What Should Never Be.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/03 - The Lemon Song.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/04 - Thank You.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/05 - Heartbreaker.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/06 - Living Loving Maid (She's Just A Woman).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/07 - Ramble On.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/08 - Moby Dick.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/09 - Bring It On Home.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/10 - Whole Lotta Love (Rough Mix With Vocal).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/11 - What Is And What Should Never Be (Rough Mix With Vocal).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/12 - Thank You (Backing Track).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/13 - Heartbreaker (Rough Mix With Vocal).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/14 - Living Loving Maid (Shes Just A Woman) (Backing Track).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/15 - Ramble On (Rough Mix With Vocal).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/16 - Moby Dick (Backing Track).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1969 - Led Zeppelin II [Atlantic Vinyl Reissue 24-96 FLAC][2014]/17 - La La (Intro,Outro Rough Mix).flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/01 Immigrant Song.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/02 Friends.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/03 Celebration Day.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/04 Since Ive Been Loving You.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/05 Out On The Tiles.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/06 Gallows Pole.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/07 Tangerine.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/08 Thats The Way.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/09 BronYAur Stomp.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/10 Hats Off To Roy Harper.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/11 The Immigrant Song Alternate Mix.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/12 Friends Track No Vocal.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/13 Celebration Day Alternate Mix.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/14 Since Ive Been Loving You Rough Mix.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/15 Bathroom Sound Track No Vocal.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/16 Gallows Pole Rough Mix.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/17 Thats The Way Rough Mix.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/18 Jennings Farm Blues Rough Mix.flac | |||
/home/paul/music/Led Zeppelin I, II, III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/1970 - Led Zeppelin III [Atlantic Vinyl Reissue 24-96 FLAC][2014]/19 Key To The Highway Trouble In Mind Rough Mix.flac | |||
/home/paul/music/Pink Floyd Meddle/Pink Floyd Fearless.flac | |||
/home/paul/music/Pink Floyd Meddle/Pink Floyd One Of These Days.flac | |||
/home/paul/music/Pink Floyd Meddle/Pink Floyd A Pillow Of Winds.flac | |||
/home/paul/music/Pink Floyd Meddle/Pink Floyd San Tropez.flac | |||
/home/paul/music/Pink Floyd Meddle/Pink Floyd Seamus.flac | |||
/home/paul/music/Pink Floyd Meddle/Pink Floyd Echoes.flac | |||
/home/paul/music/Pink Floyd - The Dark Side of the Moon/01 Speak to Me-Breathe.mp3 | |||
/home/paul/music/Pink Floyd - The Dark Side of the Moon/02 On the Run.mp3 | |||
/home/paul/music/Pink Floyd - The Dark Side of the Moon/03 Time.mp3 | |||
/home/paul/music/Pink Floyd - The Dark Side of the Moon/04 The Great Gig in the Sky.mp3 | |||
/home/paul/music/Pink Floyd - The Dark Side of the Moon/05 Money.mp3 | |||
/home/paul/music/Pink Floyd - The Dark Side of the Moon/06 Us and Them.mp3 | |||
/home/paul/music/Pink Floyd - The Dark Side of the Moon/07 Any Colour You Like.mp3 | |||
/home/paul/music/Pink Floyd - The Dark Side of the Moon/08 Brain Damage.mp3 | |||
/home/paul/music/Pink Floyd - The Dark Side of the Moon/09 Eclipse.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.1/Pink Floyd - The Wall [1979] [Disco 1]/12-01 In The Flesh_ 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.1/Pink Floyd - The Wall [1979] [Disco 1]/12-02 The Thin Ice 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.1/Pink Floyd - The Wall [1979] [Disco 1]/12-03 Another Brick In The Wall (Par 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.1/Pink Floyd - The Wall [1979] [Disco 1]/12-04 The Happiest Days Of Our Lives 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.1/Pink Floyd - The Wall [1979] [Disco 1]/12-05 Another Brick In The Wall (Par 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.1/Pink Floyd - The Wall [1979] [Disco 1]/12-06 Mother 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.1/Pink Floyd - The Wall [1979] [Disco 1]/12-07 Goodbye Blue Sky 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.1/Pink Floyd - The Wall [1979] [Disco 1]/12-08 Empty Spaces 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.1/Pink Floyd - The Wall [1979] [Disco 1]/12-09 Young Lust 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.1/Pink Floyd - The Wall [1979] [Disco 1]/12-10 One Of My Turns 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.1/Pink Floyd - The Wall [1979] [Disco 1]/12-11 Don't Leave Me Now 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.1/Pink Floyd - The Wall [1979] [Disco 1]/12-12 Another Brick In The Wall (Par 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.1/Pink Floyd - The Wall [1979] [Disco 1]/12-13 Goodbye Cruel World 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.2/Pink Floyd - The Wall [1979] [Disco 2]/13-01 Hey You 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.2/Pink Floyd - The Wall [1979] [Disco 2]/13-02 Is There Anybody Out There_ 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.2/Pink Floyd - The Wall [1979] [Disco 2]/13-03 Nobody Home 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.2/Pink Floyd - The Wall [1979] [Disco 2]/13-04 Vera 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.2/Pink Floyd - The Wall [1979] [Disco 2]/13-05 Bring The Boys Back Home 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.2/Pink Floyd - The Wall [1979] [Disco 2]/13-06 Comfortably Numb 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.2/Pink Floyd - The Wall [1979] [Disco 2]/13-07 The Show Must Go On 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.2/Pink Floyd - The Wall [1979] [Disco 2]/13-08 In The Flesh 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.2/Pink Floyd - The Wall [1979] [Disco 2]/13-09 Run Like Hell 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.2/Pink Floyd - The Wall [1979] [Disco 2]/13-10 Waiting For The Worms 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.2/Pink Floyd - The Wall [1979] [Disco 2]/13-11 Stop 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.2/Pink Floyd - The Wall [1979] [Disco 2]/13-12 The Trial 1.mp3 | |||
/home/paul/music/PINK FLOYD - THE WALL/pink.floyd_the.wall_1979_Disc.2/Pink Floyd - The Wall [1979] [Disco 2]/13-13 Outside The Wall 1.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Move Over For Terry Reid-1969/01 - Superlungs(My Supergirl).mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 09 - Bang, Bang(My Baby Shot Me Down).mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 07 - Better By Far.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 11 - Erica.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 08 - Fires Alive.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 03 - Funny How Time Slips Away(Second Version).mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 02 - I'll Take Good Care Of You(Second Version).mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 01 - It's Gonna Be Morning.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 04 - Just Walk In My Shoes.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 05 - The Hand Don't Fit In The Glove(Single A Side).mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 06 - Time Time(Single B Side).mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Super Lungs The Complete Studio Recordings 1966-1969-cd 1-2004/Terry Reid - Super Lungs Disk 1 - 10 - Tinker Taylor.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Bang, Bang You're Terry Reid-1968/01 - Bang Bang.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Bang, Bang You're Terry Reid-1968/02 - Tinker Taylor.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Bang, Bang You're Terry Reid-1968/03 - Erica.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Bang, Bang You're Terry Reid-1968/04 - Without Expression.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Bang, Bang You're Terry Reid-1968/05 - Sweater.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Bang, Bang You're Terry Reid-1968/06 - Something's Gotten Hold Of My Heart.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Bang, Bang You're Terry Reid-1968/07 - Season Of The Witch.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Bang, Bang You're Terry Reid-1968/08 - Writing On The Wall.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Bang, Bang You're Terry Reid-1968/09 - Summertime Blues.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Bang, Bang You're Terry Reid-1968/10 - When You Get Home.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Bang, Bang You're Terry Reid-1968/11 - Loving Time.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Bang, Bang You're Terry Reid-1968/12 - Hand Don't Fit The Glove.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Bang, Bang You're Terry Reid-1968/13 - This Time.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Move Over For Terry Reid-1969/05 - Stay With Me Baby.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Move Over For Terry Reid-1969/02 - Silver White Light.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Move Over For Terry Reid-1969/03 - July.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Move Over For Terry Reid-1969/04 - Marking Time.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Move Over For Terry Reid-1969/06 - Highway 61 Revisited Friends.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Move Over For Terry Reid-1969/08 - Speak Now Or Forever Hold Your Peace.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Move Over For Terry Reid-1969/09 - Rich Kids Blues.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Terry Reid-1969/Terry Reid - 01 - Superlungs My Supergirl.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Terry Reid-1969/Terry Reid - 02 - Silver White Light.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Terry Reid-1969/Terry Reid - 03 - July.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Terry Reid-1969/Terry Reid - 04 - Marking Time.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Terry Reid-1969/Terry Reid - 05 - Stay With Me Baby.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Terry Reid-1969/Terry Reid - 06 - Highway 61 Revisited-Friends.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Move Over For Terry Reid-1969/07 - May Fly.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Terry Reid-1969/Terry Reid - 07 - May Fly.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Terry Reid-1969/Terry Reid - 08 - Speak Now or Forever Hold Your Peace.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Terry Reid-1969/Terry Reid - 09 - Rich Kid Blues.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Move Over For Terry Reid-1969/10 - The Hand Don't Fit The Glove.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Terry Reid-1969/Terry Reid - 10 - Hand Don't Fit the Glove.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Move Over For Terry Reid-1969/13 - Fire's Alive.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Move Over For Terry Reid-1969/11 - This Time.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Terry Reid-1969/Terry Reid - 11 - This Time.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Move Over For Terry Reid-1969/12 - Better By Far.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Terry Reid-1969/Terry Reid - 12 - Better by Far.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Terry Reid-1969/Terry Reid - 13 - Fire's Alive.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - River-1973/01 - Dean.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - River-1973/02 - Avenue.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - River-1973/03 - Things To Try.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - River-1973/04 - Live Life.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - River-1973/05 - River.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - River-1973/06 - Dream.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - River-1973/07 - Milestones.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Seed Of Memory-1973/01 - Terry Reid - Faith To Arise.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Seed Of Memory-1973/02 - Terry Reid - Seed Of Memory.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Seed Of Memory-1973/03 - Terry Reid - Brave Awakening.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Seed Of Memory-1973/04 - Terry Reid - To Be Treated Rite.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Seed Of Memory-1973/05 - Terry Reid - Ooh Baby (Make Me Feel So Youn.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Seed Of Memory-1973/06 - Terry Reid - The Way You Walk.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Seed Of Memory-1973/07 - Terry Reid - The Frame.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Seed Of Memory-1973/08 - Terry Reid - Fooling You.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Rogue Wave-1979/01 - Terry Reid - Ain't No Shadow.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Rogue Wave-1979/02 - Terry Reid - Baby I Love You.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Rogue Wave-1979/03 - Terry Reid - Stop And Think It Over.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Rogue Wave-1979/04 - Terry Reid - Rogue Wave.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Rogue Wave-1979/05 - Terry Reid - Walk Away Rene.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Rogue Wave-1979/06 - Terry Reid - Believe In The Magic.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Rogue Wave-1979/07 - Terry Reid - The I Kissed Her.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Rogue Wave-1979/08 - Terry Reid - Bowangi.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Rogue Wave-1979/09 - Terry Reid - All I Have To Do Is Dream.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - The Hand Don't Fit The Glove-1985/01 - Terry Reid - The Hand Don't Fit The Glove.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - The Hand Don't Fit The Glove-1985/02 - Terry Reid - Superlungs My Supergirl.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - The Hand Don't Fit The Glove-1985/03 - Terry Reid - Silver Light White.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - The Hand Don't Fit The Glove-1985/04 - Terry Reid - July.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - The Hand Don't Fit The Glove-1985/05 - Terry Reid - Better By Far.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - The Hand Don't Fit The Glove-1985/06 - Terry Reid - Marking Time.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - The Hand Don't Fit The Glove-1985/07 - Terry Reid - Stay With Me Baby.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - The Hand Don't Fit The Glove-1985/08 - Terry Reid - This Time.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - The Hand Don't Fit The Glove-1985/09 - Terry Reid - Fires Alive.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - The Hand Don't Fit The Glove-1985/10 - Terry Reid - Highway 61 Revisited.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - The Hand Don't Fit The Glove-1985/11 - Terry Reid - May Fly.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - The Hand Don't Fit The Glove-1985/12 - Terry Reid - Speak Now Or Forever Hold Your Peace.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - The Hand Don't Fit The Glove-1985/13 - Terry Reid - Rich Kid Blues.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Driver-1991/Terry Reid [91][Driver] 01 - Fifth of July.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Driver-1991/Terry Reid [91][Driver] 02 - There's Nothing Wrong.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Driver-1991/Terry Reid [91][Driver] 03 - Right to the End.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Driver-1991/Terry Reid [91][Driver] 04 - The Whole of the Moon.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Driver-1991/Terry Reid [91][Driver] 05 - Hand of Dimes.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Driver-1991/Terry Reid [91][Driver] 06 - The Driver (pt I).mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Driver-1991/Terry Reid [91][Driver] 07 - If You Let Her.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Driver-1991/Terry Reid [91][Driver] 08 - Turn Around.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Driver-1991/Terry Reid [91][Driver] 09 - Gimme Some Lovin'.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Driver-1991/Terry Reid [91][Driver] 10 - Laugh At Life.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Driver-1991/Terry Reid [91][Driver] 11 - The Driver (pt II).mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Alive-Are You Sure-2002/Terry Reid - 2002 Alive (Are You Sure) - 01 - Secrets.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Alive-Are You Sure-2002/Terry Reid - 2002 Alive (Are You Sure) - 02 - Take The Time.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Alive-Are You Sure-2002/Terry Reid - 2002 Alive (Are You Sure) - 04 - Road We Chose.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Alive-Are You Sure-2002/Terry Reid - 2002 Alive (Are You Sure) - 05 - One Night With You.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Alive-Are You Sure-2002/Terry Reid - 2002 Alive (Are You Sure) - 06 - Hong Kong.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Alive-Are You Sure-2002/Terry Reid - 2002 Alive (Are You Sure) - 07 - I Need Your Lovin'.mp3 | |||
/home/paul/music/Terry Reid-11 album/Terry Reid - Alive-Are You Sure-2002/Terry Reid - 2002 Alive (Are You Sure) - 03 - Can't Stand The Rain.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/01. The Doors - The Very Best Of The Doors - Break On Through.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/02. The Doors - The Very Best Of The Doors - Light My Fire.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/03. The Doors - The Very Best Of The Doors - Love Me Two Times.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/04. The Doors - The Very Best Of The Doors - Hello I Love You.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/05. The Doors - The Very Best Of The Doors - People Are Strange.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/06. The Doors - The Very Best Of The Doors - Strange Days.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/07. The Doors - The Very Best Of The Doors - Riders On The Storm.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/08. The Doors - The Very Best Of The Doors - L.A. Woman.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/09. The Doors - The Very Best Of The Doors - Touch Me.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/10. The Doors - The Very Best Of The Doors - Roadhouse Blues.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/11. The Doors - The Very Best Of The Doors - Peace Frog.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/12. The Doors - The Very Best Of The Doors - Love Street.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/13. The Doors - The Very Best Of The Doors - The Crystal Ship.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/14. The Doors - The Very Best Of The Doors - Soul Kitchen.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/15. The Doors - The Very Best Of The Doors - Love Her Madly.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/16. The Doors - The Very Best Of The Doors - Back Door Man.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/17. The Doors - The Very Best Of The Doors - Alabama Song.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/18. The Doors - The Very Best Of The Doors - Moonlight Drive.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/19. The Doors - The Very Best Of The Doors - The Unknown Soldier.mp3 | |||
/home/paul/music/The Very Best Of - The Doors/20. The Doors - The Very Best Of The Doors - The End.mp3 |
@@ -0,0 +1,219 @@ | |||
# This file has been auto-generated by i3-config-wizard(1). | |||
# It will not be overwritten, so edit it as you like. | |||
# | |||
# Should you change your keyboard layout somewhen, delete | |||
# this file and re-run i3-config-wizard(1). | |||
# | |||
# i3 config file (v4) | |||
# | |||
# Please see http://i3wm.org/docs/userguide.html for a complete reference! | |||
set $mod Mod4 | |||
#STARTUP | |||
exec compton --config ~/.comptonrc --backend glx --vsync opengl-swc --paint-on-overlay -b | |||
exec feh --bg-scale ~/pictures/efaw.jpg | |||
# hide dem borders | |||
hide_edge_borders both | |||
# hide dem titles | |||
for_window [class="^.*"] border pixel 1 | |||
for_window [title="^float$"] floating enable | |||
#colors | |||
#solarized theme, weird | |||
set $background #1C1C1C | |||
set $back-inact #1C1C1C | |||
set $back-urgen #B85335 | |||
set $border #1C1C1C | |||
set $bor-in #1C1C1C | |||
set $bor-ur #1C1C1C | |||
set $text #FFB946 | |||
set $t-in #888888 | |||
set $t-ur #CF6A4C | |||
# class border background text indicator | |||
client.focused $border $background $text #31392F | |||
client.focused_inactive $bor-in $back-inact $t-in #676767 | |||
client.unfocused $bor-in $back-inact $t-in #515151 | |||
client.urgent $bor-ur $back-urgen $t-ur #900000 | |||
# font for window titles. ISO 10646 = Unicode | |||
#apt-get install xfonts-terminus | |||
#apt-get install xfonts-jmk | |||
font xft:Neep Alt 8 | |||
# Use Mouse+$mod to drag floating windows to their wanted position | |||
floating_modifier $mod | |||
# Font for window titles. Will also be used by the bar unless a different font | |||
# is used in the bar {} block below. ISO 10646 = Unicode | |||
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 | |||
# The font above is very space-efficient, that is, it looks good, sharp and | |||
# clear in small sizes. However, if you need a lot of unicode glyphs or | |||
# right-to-left text rendering, you should instead use pango for rendering and | |||
# chose a FreeType font, such as: | |||
# font pango:DejaVu Sans Mono 10 | |||
# Use Mouse+$mod to drag floating windows to their wanted position | |||
floating_modifier $mod | |||
# start a terminal | |||
bindsym $mod+Return exec i3-sensible-terminal | |||
# kill focused window | |||
bindsym $mod+Shift+q kill | |||
# start dmenu (a program launcher) | |||
bindsym $mod+period exec dmenu_run | |||
# There also is the (new) i3-dmenu-desktop which only displays applications | |||
# shipping a .desktop file. It is a wrapper around dmenu, so you need that | |||
# installed. | |||
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop | |||
# change focus | |||
bindsym $mod+h focus left | |||
bindsym $mod+t focus up | |||
bindsym $mod+n focus down | |||
bindsym $mod+s focus right | |||
# alternatively, you can use the cursor keys: | |||
bindsym $mod+Left focus left | |||
bindsym $mod+Down focus down | |||
bindsym $mod+Up focus up | |||
bindsym $mod+Right focus right | |||
# move focused window | |||
bindsym $mod+Shift+h move left | |||
bindsym $mod+Shift+t move up | |||
bindsym $mod+Shift+n move down | |||
bindsym $mod+Shift+s move right | |||
# alternatively, you can use the cursor keys: | |||
bindsym $mod+Shift+Left move left | |||
bindsym $mod+Shift+Down move down | |||
bindsym $mod+Shift+Up move up | |||
bindsym $mod+Shift+Right move right | |||
# split in horizontal orientation | |||
bindsym $mod+c split h | |||
# split in vertical orientation | |||
bindsym $mod+i split v | |||
# enter fullscreen mode for the focused container | |||
bindsym $mod+f fullscreen | |||
# change container layout (stacked, tabbed, toggle split) | |||
bindsym $mod+v layout stacking | |||
bindsym $mod+w layout tabbed | |||
bindsym $mod+z layout toggle split | |||
# toggle tiling / floating | |||
bindsym $mod+Shift+space floating toggle | |||
# change focus between tiling / floating windows | |||
bindsym $mod+space focus mode_toggle | |||
# focus the parent container | |||
#bindsym $mod+a focus parent | |||
# focus the child container | |||
#bindsym $mod+d focus child | |||
# switch to workspace | |||
bindsym $mod+1 workspace 1 | |||
bindsym $mod+2 workspace 2 | |||
bindsym $mod+3 workspace 3 | |||
bindsym $mod+4 workspace 4 | |||
bindsym $mod+5 workspace 5 | |||
bindsym $mod+6 workspace 6 | |||
bindsym $mod+7 workspace 7 | |||
bindsym $mod+8 workspace 8 | |||
bindsym $mod+9 workspace 9 | |||
bindsym $mod+0 workspace 10 | |||
# move focused container to workspace | |||
bindsym $mod+Shift+1 move container to workspace 1 | |||
bindsym $mod+Shift+2 move container to workspace 2 | |||
bindsym $mod+Shift+3 move container to workspace 3 | |||
bindsym $mod+Shift+4 move container to workspace 4 | |||
bindsym $mod+Shift+5 move container to workspace 5 | |||
bindsym $mod+Shift+6 move container to workspace 6 | |||
bindsym $mod+Shift+7 move container to workspace 7 | |||
bindsym $mod+Shift+8 move container to workspace 8 | |||
bindsym $mod+Shift+9 move container to workspace 9 | |||
bindsym $mod+Shift+0 move container to workspace 10 | |||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) | |||
bindsym $mod+Shift+r restart | |||
# exit i3 (logs you out of your X session) | |||
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" | |||
# resize window (you can also use the mouse for that) | |||
mode "resize" { | |||
# These bindings trigger as soon as you enter the resize mode | |||
# Pressing left will shrink the window’s width. | |||
# Pressing right will grow the window’s width. | |||
# Pressing up will shrink the window’s height. | |||
# Pressing down will grow the window’s height. | |||
bindsym h resize shrink width 10 px or 10 ppt | |||
bindsym n resize grow height 10 px or 10 ppt | |||
bindsym t resize shrink height 10 px or 10 ppt | |||
bindsym s resize grow width 10 px or 10 ppt | |||
# same bindings, but for the arrow keys | |||
bindsym Left resize shrink width 10 px or 10 ppt | |||
bindsym Down resize grow height 10 px or 10 ppt | |||
bindsym Up resize shrink height 10 px or 10 ppt | |||
bindsym Right resize grow width 10 px or 10 ppt | |||
# back to normal: Enter or Escape | |||
bindsym Return mode "default" | |||
bindsym Escape mode "default" | |||
} | |||
bindsym $mod+r mode "resize" | |||
mode "norwegian" { | |||
bindsym a exec typeKey 00e6 | |||
bindsym o exec typeKey 00f8 | |||
bindsym e exec typeKey 00e5 | |||
bindsym A exec typeKey 00c6 | |||
bindsym O exec typeKey 00d8 | |||
bindsym E exec typeKey 00c5 | |||
# back to normal: Enter or Escape | |||
bindsym Return mode "default" | |||
bindsym Escape mode "default" | |||
} | |||
bindsym $mod+shift+c mode "norwegian" | |||
# Start i3bar to display a workspace bar (plus the system information i3status | |||
# finds out, if available) | |||
bar { | |||
status_command i3status | |||
} | |||
# volume and audio | |||
bindsym XF86AudioLowerVolume exec vol -10 | |||
bindsym XF86AudioRaiseVolume exec vol +10 | |||
bindsym XF86MonBrightnessDown exec xbacxlight -dec 10 | |||
bindsym XF86MonBrightnessUp exec xbacxlight -inc 10 | |||
# augment mouse | |||
bindsym $mod+a exec xdotool mousemove_relative -- -10 0 | |||
bindsym $mod+o exec xdotool mousemove_relative -- 0 10 | |||
bindsym $mod+e exec xdotool mousemove_relative -- 0 -10 | |||
bindsym $mod+u exec xdotool mousemove_relative -- 10 0 | |||
bindsym $mod+semicolon exec xdotool mousemove_relative -- -50 0 | |||
bindsym $mod+q exec xdotool mousemove_relative -- 0 50 | |||
bindsym $mod+j exec xdotool mousemove_relative -- 0 -50 | |||
bindsym $mod+k exec xdotool mousemove_relative -- 50 0 | |||
bindsym $mod+comma exec xdotool click 1 | |||
exec /home/martin/mort/startup.sh |
@@ -0,0 +1,69 @@ | |||
set nocompatible " be iMproved | |||
filetype off " required! | |||
" Coffeescript | |||
call pathogen#infect() | |||
syntax enable | |||
filetype plugin indent on | |||
" Vundle start | |||
set rtp+=~/.vim/bundle/Vundle.vim | |||
call vundle#begin() | |||
" Plugins | |||
Plugin 'gmarik/Vundle.vim' | |||
Plugin 'kchmck/vim-coffee-script' | |||
" Vundle end | |||
call vundle#end() " required | |||
filetype plugin indent on " required | |||
" Bind keys | |||
set mouse=a | |||
map <ScrollWheelUp> <C-Y><C-Y><C-Y> | |||
map <ScrollWheelDown> <C-E><C-E><C-E> | |||
map <C-n> :NERDTreeToggle<CR> | |||
map <F1> :SaveSession<CR> | |||
map <F2> :OpenSession!<CR> | |||
" Configure | |||
syntax on | |||
filetype plugin indent on | |||
set tabstop=4 | |||
set shiftwidth=4 | |||
set number | |||
:let g:session_autosave = 'no' | |||
" Replace characters | |||
set list | |||
set listchars=tab:>. | |||
" Useful things | |||
nmap <C-o> : | |||
nmap \p :set paste!<CR> | |||
nmap <C-c> <ESC> | |||
" Search options | |||
set incsearch | |||
set ignorecase | |||
set smartcase | |||
set hlsearch | |||
" Disable swp | |||
set noswapfile | |||
" Dvorak: Fix hjkl navigation | |||
noremap h h | |||
noremap t k | |||
noremap n j | |||
noremap s l | |||
" Dvorak: Fix control keys | |||
noremap a v | |||
noremap o y | |||
noremap e p | |||
" Make nxc look like C | |||
au BufNewFile,BufRead *.nxc set filetype=c | |||
set colorcolumn=80 |
@@ -0,0 +1 @@ | |||
alias irc="ssh serve.mort.coffee -t \"tmux attach -t $1\"" |
@@ -0,0 +1,21 @@ | |||
#locale | |||
export LC_ALL="en_US.UTF-8" | |||
# neat aliases | |||
alias ls="ls --color=always" | |||
alias ll="ls -l" | |||
alias la="ls -a" | |||
source .zshalias | |||
# completion | |||
zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}" | |||
zstyle ':completion:*' menu select | |||
autoload -U compinit | |||
compinit | |||
# prompt | |||
autoload -U colors && colors | |||
PROMPT_HOST="%{${fg_bold[yellow]}%}%m " | |||
PROMPT_CWD="%{${fg_bold[cyan]}%}%~ " | |||
PROMPT_ARROW="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ %s)" | |||
PS1="$PROMPT_HOST$PROMPT_CWD$PROMPT_ARROW%{$reset_color%}" |
@@ -1,48 +0,0 @@ | |||
; Young .emacs for the powerful | |||
(custom-set-variables | |||
;; custom-set-variables was added by Custom. | |||
;; If you edit it by hand, you could mess it up, so be careful. | |||
;; Your init file should contain only one such instance. | |||
;; If there is more than one, they won't work right. | |||
'(inhibit-startup-screen t) | |||
'(make-backup-files nil) | |||
'(menu-bar-mode nil) | |||
'(scroll-bar-mode nil) | |||
'(tool-bar-mode nil) | |||
'(tooltip-mode nil)) | |||
(add-to-list 'load-path "~/.emacs.d/") | |||
;; Multiple Cursor | |||
(add-to-list 'load-path "~/.emacs.d/multiple-cursors") | |||
(require 'multiple-cursors) | |||
(global-set-key (kbd "C-c d") 'mc/edit-lines) | |||
(global-set-key (kbd "C-c x") 'mc/mark-all-like-this) | |||
(global-set-key (kbd "M-n") 'mc/mark-next-like-this) | |||
(global-set-key (kbd "M-p") 'mc/mark-previous-like-this) | |||
(add-to-list 'load-path "go-mode-load.el" t) | |||
(require 'go-mode-load) | |||
(require 'autopair) | |||
(autopair-global-mode) | |||
;; keybind yo | |||
(global-unset-key "\C-@") | |||
(global-unset-key "\M-@") | |||
(global-set-key (kbd "M-]") 'shrink-window-horizontally) | |||
(global-set-key (kbd "M-[") 'enlarge-window-horizontally) | |||
(global-set-key (kbd "C-SPC") 'forward-word) | |||
(global-set-key (kbd "M-SPC") 'backward-word) | |||
(global-set-key (kbd "C-q") 'set-mark-command) | |||
;; make whitespace-mode use just basic coloring | |||
(setq whitespace-style (quote (spaces tabs space-mark tab-mark))) | |||
(global-set-key (kbd "C-c w") 'whitespace-mode) | |||
(setq-default c-basic-offset 8 | |||
tab-width 8 | |||
indent-tabs-mode t) | |||
@@ -1,20 +0,0 @@ | |||
;; This file is automatically generated by the multiple-cursors extension. | |||
;; It keeps track of your preferences for running commands with multiple cursors. | |||
(setq mc/cmds-to-run-for-all | |||
'( | |||
autopair-insert-opening | |||
autopair-newline | |||
autopair-skip-close-maybe | |||
c-electric-delete-forward | |||
c-indent-line-or-region | |||
indent-for-tab-command | |||
kill-region | |||
undefined | |||
)) | |||
(setq mc/cmds-to-run-once | |||
'( | |||
kmacro-edit-macro | |||
write-file | |||
)) |
@@ -1,2 +0,0 @@ | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# |
@@ -1,6 +0,0 @@ | |||
/home/paul/.i3status.conf | |||
/home/paul/#.i3status.conf# | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# | |||
/home/paul/.emacs | |||
/home/paul/#.emacs# |
@@ -1,4 +0,0 @@ | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# | |||
/home/paul/.i3status.conf | |||
/home/paul/#.i3status.conf# |
@@ -1,6 +0,0 @@ | |||
/home/paul/Dropbox/stuffs/web/eport2/style/style.css | |||
/home/paul/Dropbox/stuffs/web/eport2/style/#style.css# | |||
/home/paul/Dropbox/stuffs/web/eport2/index.html | |||
/home/paul/Dropbox/stuffs/web/eport2/#index.html# | |||
/home/paul/.i3status.conf | |||
/home/paul/#.i3status.conf# |
@@ -1,4 +0,0 @@ | |||
/usr/share/themes/Ambiance/gtk-3.0/gtk.css | |||
/usr/share/themes/Ambiance/gtk-3.0/#gtk.css# | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# |
@@ -1,2 +0,0 @@ | |||
/home/paul/Desktop/c-nake/nake.c | |||
/home/paul/Desktop/c-nake/#nake.c# |
@@ -1,2 +0,0 @@ | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# |
@@ -1,2 +0,0 @@ | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# |
@@ -1,2 +0,0 @@ | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# |
@@ -1,8 +0,0 @@ | |||
/home/paul/.config/user-dirs.dirs | |||
/home/paul/.config/#user-dirs.dirs# | |||
/home/paul/.dotfiles/source/command_prompt.sh | |||
/home/paul/.dotfiles/source/#command_prompt.sh# | |||
/home/paul/Desktop/pnbp/mod/blog.py | |||
/home/paul/Desktop/pnbp/mod/#blog.py# | |||
/home/paul/Desktop/pnbp/compile.py | |||
/home/paul/Desktop/pnbp/#compile.py# |
@@ -1,2 +0,0 @@ | |||
/usr/share/themes/Ambiance/gtk-2.0/gtkrc | |||
/usr/share/themes/Ambiance/gtk-2.0/#gtkrc# |
@@ -1,16 +0,0 @@ | |||
/home/paul/desktop/pnbp/mod/blog.py | |||
/home/paul/desktop/pnbp/mod/#blog.py# | |||
/home/paul/desktop/pnbp/data/test.json | |||
/home/paul/desktop/pnbp/data/#test.json# | |||
/home/paul/desktop/pnbp/pages.json | |||
/home/paul/desktop/pnbp/#pages.json# | |||
/home/paul/desktop/pnbp/compile.py | |||
/home/paul/desktop/pnbp/#compile.py# | |||
/home/paul/desktop/pnbp/data/admin/post.php | |||
/home/paul/desktop/pnbp/data/admin/#post.php# | |||
/home/paul/desktop/pnbp/data/admin/index.php | |||
/home/paul/desktop/pnbp/data/admin/#index.php# | |||
/home/paul/desktop/pnbp/templates/std.html | |||
/home/paul/desktop/pnbp/templates/#std.html# | |||
/home/paul/desktop/pnbp/data/styles/style.css | |||
/home/paul/desktop/pnbp/data/styles/#style.css# |
@@ -1,2 +0,0 @@ | |||
/usr/share/themes/Ambiance/gtk-2.0/gtkrc | |||
/usr/share/themes/Ambiance/gtk-2.0/#gtkrc# |
@@ -1,4 +0,0 @@ | |||
/usr/share/themes/Ambiance/gtk-2.0/gtkrc | |||
/usr/share/themes/Ambiance/gtk-2.0/#gtkrc# | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# |
@@ -1,8 +0,0 @@ | |||
/home/paul/Dropbox/stuffs/web/eport2/index.html | |||
/home/paul/Dropbox/stuffs/web/eport2/#index.html# | |||
/home/paul/Dropbox/stuffs/web/eport2/style/style.css | |||
/home/paul/Dropbox/stuffs/web/eport2/style/#style.css# | |||
/home/paul/Dropbox/stuffs/web/eport2/projects/index.html | |||
/home/paul/Dropbox/stuffs/web/eport2/projects/#index.html# | |||
/home/paul/Dropbox/stuffs/web/eport2/contact/index.html | |||
/home/paul/Dropbox/stuffs/web/eport2/contact/#index.html# |
@@ -1,2 +0,0 @@ | |||
/home/paul/desktop/pnbp/src/build.py | |||
/home/paul/desktop/pnbp/src/#build.py# |
@@ -1,10 +0,0 @@ | |||
/home/paul/.i3status.conf | |||
/home/paul/#.i3status.conf# | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# | |||
/home/paul/.conkyrc | |||
/home/paul/#.conkyrc# | |||
/home/paul/Dropbox/stuffs/config/.conkyrc | |||
/home/paul/Dropbox/stuffs/config/#.conkyrc# | |||
/home/paul/bin/conky-i3bar | |||
/home/paul/bin/#conky-i3bar# |
@@ -1,2 +0,0 @@ | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# |
@@ -1,2 +0,0 @@ | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# |
@@ -1,6 +0,0 @@ | |||
/home/paul/.chrome-ext/noflash/script.js | |||
/home/paul/.chrome-ext/noflash/#script.js# | |||
/home/paul/.chrome-ext/noflash/manifest.json | |||
/home/paul/.chrome-ext/noflash/#manifest.json# | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# |
@@ -1,2 +0,0 @@ | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# |
@@ -1,2 +0,0 @@ | |||
/home/paul/.conkyrc | |||
/home/paul/#.conkyrc# |
@@ -1,4 +0,0 @@ | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# | |||
/home/paul/.i3status.conf | |||
/home/paul/#.i3status.conf# |
@@ -1,2 +0,0 @@ | |||
/home/paul/Desktop/c-nake/nake.c | |||
/home/paul/Desktop/c-nake/#nake.c# |
@@ -1,2 +0,0 @@ | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# |
@@ -1,2 +0,0 @@ | |||
/home/paul/.i3/config | |||
/home/paul/.i3/#config# |
@@ -1,6 +0,0 @@ | |||
/home/paul/desktop/pnbp/compile.py | |||
/home/paul/desktop/pnbp/#compile.py# | |||
/home/paul/desktop/pnbp/includes/header.html | |||
/home/paul/desktop/pnbp/includes/#header.html# | |||
/home/paul/desktop/pnbp/templates/post.html | |||
/home/paul/desktop/pnbp/templates/#post.html# |
@@ -1,96 +0,0 @@ | |||
;;; go-mode-load.el --- automatically extracted autoloads | |||
;;; Commentary: | |||
;; To install go-mode, add the following lines to your .emacs file: | |||
;; (add-to-list 'load-path "PATH CONTAINING go-mode-load.el" t) | |||
;; (require 'go-mode-load) | |||
;; | |||
;; After this, go-mode will be used for files ending in '.go'. | |||
;; | |||
;; To compile go-mode from the command line, run the following | |||
;; emacs -batch -f batch-byte-compile go-mode.el | |||
;; | |||
;; See go-mode.el for documentation. | |||
;; | |||
;; To update this file, evaluate the following form | |||
;; (let ((generated-autoload-file buffer-file-name)) (update-file-autoloads "go-mode.el")) | |||
;;; Code: | |||
;;;### (autoloads (go-download-play godoc gofmt-before-save go-mode) | |||
;;;;;; "go-mode" "go-mode.el" (20767 50749)) | |||
;;; Generated autoloads from go-mode.el | |||
(autoload 'go-mode "go-mode" "\ | |||
Major mode for editing Go source text. | |||
This mode provides (not just) basic editing capabilities for | |||
working with Go code. It offers almost complete syntax | |||
highlighting, indentation that is almost identical to gofmt, | |||
proper parsing of the buffer content to allow features such as | |||
navigation by function, manipulation of comments or detection of | |||
strings. | |||
Additionally to these core features, it offers various features to | |||
help with writing Go code. You can directly run buffer content | |||
through gofmt, read godoc documentation from within Emacs, modify | |||
and clean up the list of package imports or interact with the | |||
Playground (uploading and downloading pastes). | |||
The following extra functions are defined: | |||
- `gofmt' | |||
- `godoc' | |||
- `go-import-add' | |||
- `go-remove-unused-imports' | |||
- `go-goto-imports' | |||
- `go-play-buffer' and `go-play-region' | |||
- `go-download-play' | |||
If you want to automatically run `gofmt' before saving a file, | |||
add the following hook to your emacs configuration: | |||
\(add-hook 'before-save-hook 'gofmt-before-save) | |||
If you're looking for even more integration with Go, namely | |||
on-the-fly syntax checking, auto-completion and snippets, it is | |||
recommended to look at goflymake | |||
\(https://github.com/dougm/goflymake), gocode | |||
\(https://github.com/nsf/gocode) and yasnippet-go | |||
\(https://github.com/dominikh/yasnippet-go) | |||
\(fn)" t nil) | |||
(add-to-list 'auto-mode-alist (cons "\\.go\\'" 'go-mode)) | |||
(autoload 'gofmt-before-save "go-mode" "\ | |||
Add this to .emacs to run gofmt on the current buffer when saving: | |||
(add-hook 'before-save-hook 'gofmt-before-save). | |||
Note that this will cause go-mode to get loaded the first time | |||
you save any file, kind of defeating the point of autoloading. | |||
\(fn)" t nil) | |||
(autoload 'godoc "go-mode" "\ | |||
Show go documentation for a query, much like M-x man. | |||
\(fn QUERY)" t nil) | |||
(autoload 'go-download-play "go-mode" "\ | |||
Downloads a paste from the playground and inserts it in a Go | |||
buffer. Tries to look for a URL at point. | |||
\(fn URL)" t nil) | |||
;;;*** | |||
(provide 'go-mode-load) | |||
;; Local Variables: | |||
;; version-control: never | |||
;; no-byte-compile: t | |||
;; no-update-autoloads: t | |||
;; coding: utf-8 | |||
;; End: | |||
;;; go-mode-load.el ends here |
@@ -1,2 +0,0 @@ | |||
elpa | |||
*.elc |
@@ -1,21 +0,0 @@ | |||
language: emacs-lisp | |||
before_install: | |||
- if [ "$EMACS" = 'emacs-snapshot' ]; then | |||
sudo add-apt-repository -y ppa:cassou/emacs && | |||
sudo apt-get update -qq && | |||
sudo apt-get install -qq | |||
emacs-snapshot-el emacs-snapshot-gtk emacs-snapshot; | |||
fi | |||
- if [ "$EMACS" = 'emacs24' ]; then | |||
sudo add-apt-repository -y ppa:cassou/emacs && | |||
sudo apt-get update -qq && | |||
sudo apt-get install -qq | |||
emacs24 emacs24-el emacs24-common-non-dfsg; | |||
fi | |||
- curl -fsSkL https://raw.github.com/cask/cask/master/go | python | |||
- export PATH="/home/travis/.cask/bin:$PATH" | |||
- cask | |||
env: | |||
- EMACS=emacs24 TAGS="" | |||
script: | |||
./run-travis-ci.sh |
@@ -1,9 +0,0 @@ | |||
(source gnu) | |||
(source melpa) | |||
(package-file "multiple-cursors.el") | |||
(development | |||
(depends-on "ecukes") | |||
(depends-on "espuds") | |||
(depends-on "wrap-region")) |
@@ -1,199 +0,0 @@ | |||
# multiple-cursors.el [![Build Status](https://secure.travis-ci.org/magnars/multiple-cursors.el.png)](http://travis-ci.org/magnars/multiple-cursors.el) | |||
Multiple cursors for Emacs. This is some pretty crazy functionality, so yes, | |||
there are kinks. Don't be afraid tho, I've been using it since 2011 with | |||
great success and much merriment. | |||
## Basic usage | |||
Start out with: | |||
(require 'multiple-cursors) | |||
Then you have to set up your keybindings - multiple-cursors doesn't presume to | |||
know how you'd like them laid out. Here are some examples: | |||
When you have an active region that spans multiple lines, the following will | |||
add a cursor to each line: | |||
(global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines) | |||
When you want to add multiple cursors not based on continuous lines, but based on | |||
keywords in the buffer, use: | |||
(global-set-key (kbd "C->") 'mc/mark-next-like-this) | |||
(global-set-key (kbd "C-<") 'mc/mark-previous-like-this) | |||
(global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this) | |||
First mark the word, then add more cursors. | |||
To get out of multiple-cursors-mode, press `<return>` or `C-g`. The latter will | |||
first disable multiple regions before disabling multiple cursors. If you want to | |||
insert a newline in multiple-cursors-mode, use `C-j`. | |||
## Video | |||
You can [watch an intro to multiple-cursors at Emacs Rocks](http://emacsrocks.com/e13.html). | |||
## Command overview | |||
### Mark one more occurrence | |||
- `mc/mark-next-like-this`: Adds a cursor and region at the next part of the buffer forwards that matches the current region. | |||
- `mc/mark-next-word-like-this`: Like `mc/mark-next-like-this` but only for whole words. | |||
- `mc/mark-next-symbol-like-this`: Like `mc/mark-next-like-this` but only for whole symbols. | |||
- `mc/mark-previous-like-this`: Adds a cursor and region at the next part of the buffer backwards that matches the current region. | |||
- `mc/mark-previous-word-like-this`: Like `mc/mark-previous-like-this` but only for whole words. | |||
- `mc/mark-previous-symbol-like-this`: Like `mc/mark-previous-like-this` but only for whole symbols. | |||
- `mc/mark-more-like-this-extended`: Use arrow keys to quickly mark/skip next/previous occurances. | |||
- `mc/add-cursor-on-click`: Bind to a mouse event to add cursors by clicking. See tips-section. | |||
- `mc/mark-pop`: Set a cursor at the current point and move to the next (different) position on the mark stack. This allows for fine grained control over the placement of cursors. | |||
### Juggle around with the current cursors | |||
- `mc/unmark-next-like-this`: Remove the cursor furthest down in the buffer. | |||
- `mc/unmark-previous-like-this`: Remove the cursor furthest up in the buffer. | |||
- `mc/skip-to-next-like-this`: Remove the cursor furthest down, marking the next occurance down. | |||
- `mc/skip-to-previous-like-this`: Remove the cursor furthest up, marking the next occurance up. | |||
- `mc/mark-next-like-this-extended`: Temporarily bind the arrow keys to mark/unmark/skip cursors. | |||
### Mark many occurrences | |||
- `mc/edit-lines`: Adds one cursor to each line in the current region. | |||
- `mc/edit-beginnings-of-lines`: Adds a cursor at the start of each line in the current region. | |||
- `mc/edit-ends-of-lines`: Adds a cursor at the end of each line in the current region. | |||
- `mc/mark-all-like-this`: Marks all parts of the buffer that matches the current region. | |||
- `mc/mark-all-words-like-this`: Like `mc/mark-all-like-this` but only for whole words. | |||
- `mc/mark-all-symbols-like-this`: Like `mc/mark-all-like-this` but only for whole symbols. | |||
- `mc/mark-all-in-region`: Prompts for a string to match in the region, adding cursors to all of them. | |||
- `mc/mark-all-like-this-in-defun`: Marks all parts of the current defun that matches the current region. | |||
- `mc/mark-all-words-like-this-in-defun`: Like `mc/mark-all-like-this-in-defun` but only for whole words. | |||
- `mc/mark-all-symbols-like-this-in-defun`: Like `mc/mark-all-like-this-in-defun` but only for whole symbols. | |||
- `mc/mark-all-dwim`: Tries to be smart about marking everything you want. Can be pressed multiple times. | |||
### Special | |||
- `set-rectangular-region-anchor`: Think of this one as `set-mark` except you're marking a rectangular region. | |||
- `mc/mark-sgml-tag-pair`: Mark the current opening and closing tag. | |||
- `mc/insert-numbers`: Insert increasing numbers for each cursor, top to bottom. | |||
- `mc/sort-regions`: Sort the marked regions alphabetically. | |||
- `mc/reverse-regions`: Reverse the order of the marked regions. | |||
## Tips and tricks | |||
- To get out of multiple-cursors-mode, press `<return>` or `C-g`. The latter will | |||
first disable multiple regions before disabling multiple cursors. If you want to | |||
insert a newline in multiple-cursors-mode, use `C-j`. | |||
- Sometimes you end up with cursors outside of your view. You can | |||
scroll the screen to center on each cursor with `C-v` and `M-v`. | |||
- Try pressing `mc/mark-next-like-this` with no region selected. It | |||
will just add a cursor on the next line. | |||
- Try pressing `mc/mark-all-like-this-dwim` on a tagname in html-mode. | |||
- Notice that the number of cursors active can be seen in the modeline. | |||
- If you get out of multiple-cursors-mode and yank - it will yank only | |||
from the kill-ring of main cursor. To yank from the kill-rings of | |||
every cursor use yank-rectangle, normally found at C-x r y. | |||
- You can use `mc/reverse-regions` with nothing selected and just one cursor. | |||
It will then flip the sexp at point and the one below it. | |||
- When you use `mc/edit-lines`, you can give it a positive or negative | |||
prefix to change how it behaves on too short lines. | |||
- If you would like to keep the global bindings clean, and get custom keybindings | |||
when the region is active, you can try [region-bindings-mode](https://github.com/fgallina/region-bindings-mode). | |||
BTW, I highly recommend adding `mc/mark-next-like-this` to a key binding that's | |||
right next to the key for `er/expand-region`. | |||
### Binding mouse events | |||
To override a mouse event, you will likely have to also unbind the | |||
`down-mouse` part of the event. Like this: | |||
(global-unset-key (kbd "M-<down-mouse-1>")) | |||
(global-set-key (kbd "M-<mouse-1>") 'mc/add-cursor-on-click) | |||
Or you can do like me and find an unused, but less convenient, binding: | |||
(global-set-key (kbd "C-S-<mouse-1>") 'mc/add-cursor-on-click) | |||
## Unknown commands | |||
Multiple-cursors uses two lists of commands to know what to do: the run-once list | |||
and the run-for-all list. It comes with a set of defaults, but it would be beyond silly | |||
to try and include all the known Emacs commands. | |||
So that's why multiple-cursors occasionally asks what to do about a command. It will | |||
then remember your choice by saving it in `~/.emacs.d/.mc-lists.el`. You can change | |||
the location with: | |||
(setq mc/list-file "/my/preferred/file") | |||
NB! Make sure to do so before requiring multiple-cursors. | |||
## Known limitations | |||
* isearch-forward and isearch-backward aren't supported with multiple cursors. | |||
If you want this functionality, you can use [phi-search](https://github.com/zk-phi/phi-search). | |||
* Commands run with `M-x` won't be repeated for all cursors. | |||
* All key bindings that refer to lambdas are always run for all cursors. If you | |||
need to limit it, you will have to give it a name. | |||
* Redo might screw with your cursors. Undo works very well. | |||
## Contribute | |||
Yes, please do. There's a suite of tests, so remember to add tests for your | |||
specific feature, or I might break it later. | |||
You'll find the repo at: | |||
https://github.com/magnars/multiple-cursors.el | |||
To fetch the test dependencies, install | |||
[cask](https://github.com/rejeep/cask.el) if you haven't already, | |||
then: | |||
$ cd /path/to/multiple-cursors | |||
$ cask | |||
Run the tests with: | |||
$ ./run-tests.sh | |||
## Contributors | |||
* [Takafumi Arakaki](https://github.com/tkf) has contributed several small improvements | |||
* [Marco Baringer](https://github.com/segv) contributed looping to `mc/cycle` and adding cursors without region for mark-more. | |||
* [Ivan Andrus](https://github.com/gvol) added showing number of cursors in mode-line, and different options for how to handle short lines in `mc/edit-lines`. | |||
* [Fuco](https://github.com/Fuco1) added the first version of `mc/mark-all-like-this-dwim` | |||
* [Zach Kost-Smith](https://github.com/smithzvk) added `mc/mark-pop` | |||
* [Maciej Katafiasz](https://github.com/mathrick) added `mc/mark-all-dwim` | |||
Thanks! | |||
## License | |||
Copyright (C) 2012 Magnar Sveen | |||
Author: Magnar Sveen <magnars@gmail.com> | |||
Keywords: editing cursors | |||
This program is free software; you can redistribute it and/or modify | |||
it under the terms of the GNU General Public License as published by | |||
the Free Software Foundation, either version 3 of the License, or | |||
(at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU General Public License for more details. | |||
You should have received a copy of the GNU General Public License | |||
along with this program. If not, see <http://www.gnu.org/licenses/>. |
@@ -1,140 +0,0 @@ | |||
Feature: Switching from a multiline region to multiple cursors | |||
Scenario: Single line region | |||
When I insert "hello there" | |||
And I select "there" | |||
And I press "C-S-c C-S-c" | |||
Then I should have one cursor | |||
Scenario: Edit lines | |||
When I insert: | |||
""" | |||
hello | |||
there | |||
""" | |||
And I go to the front of the word "hello" | |||
And I set the mark | |||
And I go to the front of the word "there" | |||
And I press "C-S-c C-S-c" | |||
Then I should have 2 cursors | |||
Scenario: Edit lines from bottom up | |||
When I insert: | |||
""" | |||
hello | |||
there | |||
""" | |||
And I go to the front of the word "there" | |||
And I set the mark | |||
And I go to the front of the word "hello" | |||
And I press "C-S-c C-S-c" | |||
Then I should have one cursor | |||
Scenario: Edit only real lines, even in visual-line-mode | |||
Given I turn on visual-line-mode | |||
And I insert: | |||
""" | |||
some very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very very | |||
long text | |||
""" | |||
And I go to the front of the word "some" | |||
And I set the mark | |||
And I go to the front of the word "long" | |||
And I press "C-S-c C-S-c" | |||
Then I should have 2 cursors | |||
Scenario: Edit without using transient mark mode | |||
Given I turn off transient-mark-mode | |||
And I insert: | |||
""" | |||
hello | |||
there | |||
""" | |||
And I go to the front of the word "hello" | |||
And I set the mark | |||
And I go to the front of the word "there" | |||
And I press "C-S-c C-S-c" | |||
Then I should have 2 cursors | |||
Scenario: Edit default short lines | |||
When I insert: | |||
""" | |||
hello | |||
there | |||
""" | |||
And I go to the end of the word "hello" | |||
And I set the mark | |||
And I go to the end of the word "there" | |||
And I press "C-S-c C-S-c" | |||
And I press "you" | |||
Then I should see: | |||
""" | |||
helloyou | |||
you | |||
thereyou | |||
""" | |||
Scenario: Pad short lines | |||
When I insert: | |||
""" | |||
hello | |||
there | |||
""" | |||
And I go to the end of the word "hello" | |||
And I set the mark | |||
And I go to the end of the word "there" | |||
And I press "M-1 C-S-c C-S-c" | |||
Then I should have 3 cursors | |||
Scenario: Edit padding short lines | |||
When I insert: | |||
""" | |||
hello | |||
there | |||
""" | |||
And I go to the end of the word "hello" | |||
And I set the mark | |||
And I go to the end of the word "there" | |||
And I press "M-1 C-S-c C-S-c" | |||
And I press "you" | |||
Then I should see: | |||
""" | |||
helloyou | |||
you | |||
thereyou | |||
""" | |||
Scenario: Skip short lines | |||
When I insert: | |||
""" | |||
hello | |||
there | |||
""" | |||
And I go to the end of the word "hello" | |||
And I set the mark | |||
And I go to the end of the word "there" | |||
And I press "M-- M-1 C-S-c C-S-c" | |||
Then I should have 2 cursors | |||
Scenario: Edit skipping short lines | |||
When I insert: | |||
""" | |||
hello | |||
there | |||
""" | |||
And I go to the end of the word "hello" | |||
And I set the mark | |||
And I go to the end of the word "there" | |||
And I press "M-- M-1 C-S-c C-S-c" | |||
And I press "you" | |||
Then I should see: | |||
""" | |||
helloyou | |||
thereyou | |||
""" |
@@ -1,13 +0,0 @@ | |||
Feature: Insert increasing numbers | |||
Scenario: Three cursors, 0-1-2 | |||
Given I have cursors at "text" in "This text contains the word text thrice (text)" | |||
When I press "H-0" | |||
And I press "SPC" | |||
Then I should see "This 0 text contains the word 1 text thrice (2 text)" | |||
Scenario: Three cursors, 9-10-11 | |||
Given I have cursors at "text" in "This text contains the word text thrice (text)" | |||
When I press "C-9 H-0" | |||
And I press "SPC" | |||
Then I should see "This 9 text contains the word 10 text thrice (11 text)" |
@@ -1,94 +0,0 @@ | |||
Feature: Mark all do-what-I-mean (html) | |||
Background: | |||
Given I turn on html-mode | |||
And I turn on delete-selection-mode | |||
And I insert: | |||
""" | |||
<body> | |||
<div class="abc"> def </div> | |||
<div class="ghi"> jkl </div> | |||
</body> | |||
""" | |||
Scenario: Marks tags in html-mode, from front | |||
When I go to the front of the word "abc" | |||
And I press "M-b" | |||
And I press "M-b" | |||
And I press "M-$" | |||
And I type "h1" | |||
Then I should see: | |||
""" | |||
<body> | |||
<h1 class="abc"> def </h1> | |||
<div class="ghi"> jkl </div> | |||
</body> | |||
""" | |||
Scenario: Marks tags in html-mode, from back | |||
When I go to the end of the word "jkl" | |||
And I press "M-f" | |||
And I press "M-$" | |||
And I type "h1" | |||
Then I should see: | |||
""" | |||
<body> | |||
<div class="abc"> def </div> | |||
<h1 class="ghi"> jkl </h1> | |||
</body> | |||
""" | |||
Scenario: Marks tags in html-mode, from outside front | |||
When I go to the front of the word "abc" | |||
And I press "M-b" | |||
And I press "M-b" | |||
And I press "C-b" | |||
And I press "M-$" | |||
And I type "h1" | |||
Then I should see: | |||
""" | |||
<body> | |||
<h1 class="abc"> def </h1> | |||
<div class="ghi"> jkl </div> | |||
</body> | |||
""" | |||
Scenario: Marks tags in html-mode, from outside back | |||
When I go to the end of the word "jkl" | |||
And I press "M-f" | |||
And I press "C-f" | |||
And I press "M-$" | |||
And I type "h1" | |||
Then I should see: | |||
""" | |||
<body> | |||
<div class="abc"> def </div> | |||
<h1 class="ghi"> jkl </h1> | |||
</body> | |||
""" | |||
Scenario: Marks words in html-mode | |||
When I go to the front of the word "abc" | |||
And I press "M-$" | |||
And I type "def" | |||
Then I should see: | |||
""" | |||
<body> | |||
<div class="def"> def </div> | |||
<div class="ghi"> jkl </div> | |||
</body> | |||
""" | |||
Scenario: Marks words in html-mode | |||
When I go to the front of the word "abc" | |||
And I press "M-$" | |||
And I type "def" | |||
And I press "M-$" | |||
And I type "hah" | |||
Then I should see: | |||
""" | |||
<body> | |||
<div class="hah"> hah </div> | |||
<div class="ghi"> jkl </div> | |||
</body> | |||
""" |
@@ -1,90 +0,0 @@ | |||
Feature: Mark all do-what-I-mean | |||
Background: | |||
Given I turn on emacs-lisp-mode | |||
And I turn on delete-selection-mode | |||
And I insert: | |||
""" | |||
(defun abc (ghi) (message ghi)) | |||
(defun def (ghi) (message some-other-ghi)) | |||
""" | |||
Scenario: Mark symbols in defun | |||
When I go to the end of the word "abc" | |||
And I press "M-f" | |||
And I press "M-$" | |||
And I type "hmm" | |||
Then I should see: | |||
""" | |||
(defun abc (hmm) (message hmm)) | |||
(defun def (ghi) (message some-other-ghi)) | |||
""" | |||
When I press "C-g" | |||
And I go to the front of the word "hmm" | |||
And I press "C-$" | |||
And I type "foo" | |||
Then I should see: | |||
""" | |||
(defun abc (foo) (message foo)) | |||
(defun def (ghi) (message some-other-ghi)) | |||
""" | |||
Scenario: Mark all symbols by pressing twice | |||
When I go to the end of the word "abc" | |||
And I press "M-f" | |||
And I press "M-$" | |||
And I press "M-$" | |||
And I type "hmm" | |||
Then I should see: | |||
""" | |||
(defun abc (hmm) (message hmm)) | |||
(defun def (hmm) (message some-other-hmm)) | |||
""" | |||
When I press "C-g" | |||
And I press "M->" | |||
And I insert: | |||
""" | |||
(defun def (hmm-hmm) (message hmm)) | |||
""" | |||
And I go to the front of the word "hmm" | |||
And I press "C-$" | |||
And I press "C-$" | |||
And I type "humm" | |||
Then I should see: | |||
""" | |||
(defun abc (humm) (message humm)) | |||
(defun def (humm) (message some-other-humm)) | |||
(defun def (humm-humm) (message humm)) | |||
""" | |||
Scenario: Mark dwim from selection | |||
When I press "M-<" | |||
And I press "S-M->" | |||
And I press "C-$ ghi RET" | |||
And I type "xyz" | |||
Then I should see: | |||
""" | |||
(defun abc (xyz) (message xyz)) | |||
(defun def (xyz) (message some-other-xyz)) | |||
""" | |||
When I press "C-g" | |||
And I go to the front of the word "xyz" | |||
And I press "C-M-SPC" | |||
And I press "C-$" | |||
And I type "foo" | |||
Then I should see: | |||
""" | |||
(defun abc (foo) (message foo)) | |||
(defun def (xyz) (message some-other-xyz)) | |||
""" | |||
When I press "C-g" | |||
And I press "M-<" | |||
And I press "S-M->" | |||
And I press "C-u C-$" | |||
And I type ";;" | |||
Then I should see: | |||
""" | |||
;;(defun abc (foo) (message foo)) | |||
;;(defun def (xyz) (message some-other-xyz)) | |||
""" |
@@ -1,144 +0,0 @@ | |||
Feature: Marking multiple parts of the buffer | |||
Scenario: Marking next like this, cursors | |||
When I insert "This text has the word text in it" | |||
And I select "text" | |||
And I press "C->" | |||
Then I should have 2 cursors | |||
Scenario: Marking next like this, region | |||
Given I turn on delete-selection-mode | |||
When I insert "This text has the word text in it" | |||
And I select "text" | |||
And I press "C->" | |||
And I type "sentence" | |||
Then I should see "This sentence has the word sentence in it" | |||
Scenario: Skipping a mark | |||
Given I turn on delete-selection-mode | |||
When I insert "Here's text, text and text" | |||
And I select "text" | |||
And I press "C->" | |||
And I press "C-0 C->" | |||
And I type "more" | |||
Then I should see "Here's more, text and more" | |||
Scenario: Removing last fake | |||
When I insert "Here's text, text and text" | |||
And I select "text" | |||
And I press "C->" | |||
And I press "C-- C->" | |||
Then I should have one cursor | |||
Scenario: Removing furthest mark | |||
Given I turn on delete-selection-mode | |||
When I insert "Here's text, text and text" | |||
And I select "text" | |||
And I press "C->" | |||
And I press "C->" | |||
And I press "C-- C->" | |||
And I type "more" | |||
Then I should see "Here's more, more and text" | |||
Scenario: Marking prev like this, cursors | |||
When I insert "This text has the word text in it" | |||
And I select the last "text" | |||
And I press "C-<" | |||
Then I should have 2 cursors | |||
Scenario: Marking prev like this, region | |||
Given I turn on delete-selection-mode | |||
When I insert "This text has the word text in it" | |||
And I select the last "text" | |||
And I press "C-<" | |||
And I type "sentence" | |||
Then I should see "This sentence has the word sentence in it" | |||
Scenario: Skipping a prev mark | |||
Given I turn on delete-selection-mode | |||
When I insert "Here's text, text and text" | |||
And I select the last "text" | |||
And I press "C-<" | |||
And I press "C-0 C-<" | |||
And I type "more" | |||
Then I should see "Here's more, text and more" | |||
Scenario: Removing first fake | |||
When I insert "Here's text, text and text" | |||
And I select the last "text" | |||
And I press "C-<" | |||
And I press "C-- C-<" | |||
Then I should have one cursor | |||
Scenario: Removing first mark | |||
Given I turn on delete-selection-mode | |||
When I insert "Here's text, text and text" | |||
And I select the last "text" | |||
And I press "C-<" | |||
And I press "C-<" | |||
And I press "C-- C-<" | |||
And I type "more" | |||
Then I should see "Here's text, more and more" | |||
Scenario: Marking all | |||
When I insert "Here's text, text and text" | |||
And I select "text" | |||
And I press "M-!" | |||
Then I should have 3 cursors | |||
Scenario: Marking in region | |||
Given I turn on delete-selection-mode | |||
When I insert "Here's text, text and text" | |||
And I select "text, text" | |||
And I press "M-# text <return>" | |||
And I type "more" | |||
Then I should have 2 cursors | |||
And I should see "Here's more, more and text" | |||
Scenario: Marking without an active region | |||
When I insert: | |||
""" | |||
aaa | |||
bbb | |||
ccc | |||
""" | |||
And I go to the front of the word "bbb" | |||
And I press "C->" | |||
And I type "_" | |||
Then I should have 2 cursors | |||
And I should see: | |||
""" | |||
aaa | |||
_bbb | |||
_ccc | |||
""" | |||
Scenario: Increasing number of cursors without an active region | |||
When I insert: | |||
""" | |||
aaa | |||
bbb | |||
ccc | |||
""" | |||
And I go to the front of the word "bbb" | |||
And I press "C->" | |||
And I press "C-<" | |||
And i press "C-f" | |||
And I type "_" | |||
Then I should have 3 cursors | |||
And I should see: | |||
""" | |||
a_aa | |||
b_bb | |||
c_cc | |||
""" | |||
Scenario: Multiple cursor with shift selection | |||
When I insert "This text contains the word text twice" | |||
And I go to the front of the word "text" | |||
And I press "M-S-f" | |||
And I press "C->" | |||
And I press "C-f" | |||
And I press "<deletechar>" | |||
Then I should see "This text ontains the word text wice" | |||
@@ -1,88 +0,0 @@ | |||
Feature: Popping cursors off of the mark stack | |||
Scenario: Single pop | |||
Given I turn off transient-mark-mode | |||
And I insert: | |||
""" | |||
hello | |||
there | |||
""" | |||
And I go to the front of the word "hello" | |||
And I set the mark | |||
And I go to the front of the word "there" | |||
And I press "M-x mc/mark-pop" | |||
Then I should have 2 cursors | |||
Scenario: Multiple pops | |||
Given I turn off transient-mark-mode | |||
And I insert: | |||
""" | |||
hello | |||
there, my friend | |||
""" | |||
And I go to the front of the word "hello" | |||
And I set the mark | |||
And I go to the front of the word "my" | |||
And I set the mark | |||
And I go to the front of the word "friend" | |||
And I press "M-x mc/mark-pop" | |||
And I press "M-x mc/mark-pop" | |||
Then I should have 3 cursors | |||
Scenario: Discard identical mark and point | |||
Given I turn off transient-mark-mode | |||
And I insert: | |||
""" | |||
hello | |||
there, my friend | |||
""" | |||
And I go to the front of the word "hello" | |||
And I set the mark | |||
And I go to the front of the word "my" | |||
And I set the mark | |||
And I go to the front of the word "friend" | |||
And I set the mark | |||
And I press "M-x mc/mark-pop" | |||
And I press "M-x mc/mark-pop" | |||
Then I should have 3 cursors | |||
Scenario: Changing the text | |||
Given I turn off transient-mark-mode | |||
And I insert: | |||
""" | |||
hello | |||
there, my friend | |||
""" | |||
And I go to the front of the word "hello" | |||
And I set the mark | |||
And I go to the front of the word "my" | |||
And I set the mark | |||
And I go to the front of the word "friend" | |||
And I press "M-x mc/mark-pop" | |||
And I press "M-x mc/mark-pop" | |||
And I type "!" | |||
Then I should see: | |||
""" | |||
!hello | |||
there, !my !friend | |||
""" | |||
Scenario: With transient-mark-mode | |||
And I insert: | |||
""" | |||
hello | |||
there, my friend | |||
""" | |||
And I go to the front of the word "hello" | |||
And I press "C-@ C-@" | |||
And I go to the front of the word "my" | |||
And I press "C-@ C-@" | |||
And I go to the front of the word "friend" | |||
And I press "M-x mc/mark-pop" | |||
And I press "M-x mc/mark-pop" | |||
And I type "!" | |||
Then I should see: | |||
""" | |||
!hello | |||
there, !my !friend | |||
""" |
@@ -1,137 +0,0 @@ | |||
Feature: Mark things | |||
Scenario: Mark all symbols like this with select | |||
Given I turn on emacs-lisp-mode | |||
And I turn on delete-selection-mode | |||
And I insert: | |||
""" | |||
(defun abc (ghi) (message ghi)) | |||
(defun def (ghi) (message some-other-ghi)) | |||
""" | |||
When I select "ghi" | |||
And I mark all symbols like this | |||
And I type "hmm" | |||
Then I should see: | |||
""" | |||
(defun abc (hmm) (message hmm)) | |||
(defun def (hmm) (message some-other-ghi)) | |||
""" | |||
Scenario: Mark all words like this with select | |||
Given I turn on emacs-lisp-mode | |||
And I turn on delete-selection-mode | |||
And I insert: | |||
""" | |||
(defun abc (ghi) (message ghi)) | |||
(defun def (ghi) (message some-other-ghi)) | |||
""" | |||
When I select "ghi" | |||
And I mark all words like this | |||
And I type "hmm" | |||
Then I should see: | |||
""" | |||
(defun abc (hmm) (message hmm)) | |||
(defun def (hmm) (message some-other-hmm)) | |||
""" | |||
Scenario: Mark all symbols like this in defun with select | |||
Given I turn on emacs-lisp-mode | |||
And I turn on delete-selection-mode | |||
And I insert: | |||
""" | |||
(defun abc (ghi) (message ghi)) | |||
(defun def (ghi) (message some-other-ghi)) | |||
""" | |||
When I select "ghi" | |||
And I mark all symbols like this in defun | |||
And I type "hmm" | |||
Then I should see: | |||
""" | |||
(defun abc (hmm) (message hmm)) | |||
(defun def (ghi) (message some-other-ghi)) | |||
""" | |||
Scenario: Mark all words like this in defun with select | |||
Given I turn on emacs-lisp-mode | |||
And I turn on delete-selection-mode | |||
And I insert: | |||
""" | |||
(defun abc (ghi) (message ghi)) | |||
(defun def (ghi) (message some-other-ghi)) | |||
""" | |||
When I select "ghi" | |||
And I mark all words like this in defun | |||
And I type "hmm" | |||
Then I should see: | |||
""" | |||
(defun abc (hmm) (message hmm)) | |||
(defun def (ghi) (message some-other-ghi)) | |||
""" | |||
Scenario: Mark all symbols like this with no select | |||
Given I turn on emacs-lisp-mode | |||
And I turn on delete-selection-mode | |||
And I insert: | |||
""" | |||
(defun abc (ghi) (message ghi)) | |||
(defun def (ghi) (message some-other-ghi)) | |||
""" | |||
When I go to word "ghi" | |||
And I mark all symbols like this | |||
And I type "hmm" | |||
Then I should see: | |||
""" | |||
(defun abc (hmm) (message hmm)) | |||
(defun def (hmm) (message some-other-ghi)) | |||
""" | |||
Scenario: Mark all words like this with no select | |||
Given I turn on emacs-lisp-mode | |||
And I turn on delete-selection-mode | |||
And I insert: | |||
""" | |||
(defun abc (ghi) (message ghi)) | |||
(defun def (ghi) (message some-other-ghi)) | |||
""" | |||
When I go to word "ghi" | |||
And I mark all words like this | |||
And I type "hmm" | |||
Then I should see: | |||
""" | |||
(defun abc (hmm) (message hmm)) | |||
(defun def (hmm) (message some-other-hmm)) | |||
""" | |||
Scenario: Mark all symbols like this in defun with no select | |||
Given I turn on emacs-lisp-mode | |||
And I turn on delete-selection-mode | |||
And I insert: | |||
""" | |||
(defun abc (ghi) (message ghi)) | |||
(defun def (ghi) (message some-other-ghi)) | |||
""" | |||
When I go to word "ghi" | |||
And I mark all symbols like this in defun | |||
And I type "hmm" | |||
Then I should see: | |||
""" | |||
(defun abc (hmm) (message hmm)) | |||
(defun def (ghi) (message some-other-ghi)) | |||
""" | |||
Scenario: Mark all words like this in defun with no select | |||
Given I turn on emacs-lisp-mode | |||
And I turn on delete-selection-mode | |||
And I insert: | |||
""" | |||
(defun abc (ghi) (message ghi)) | |||
(defun def (ghi) (message some-other-ghi)) | |||
""" | |||
When I go to word "ghi" | |||
And I mark all words like this in defun | |||
And I type "hmm" | |||
Then I should see: | |||
""" | |||
(defun abc (hmm) (message hmm)) | |||
(defun def (ghi) (message some-other-ghi)) | |||
""" |
@@ -1,188 +0,0 @@ | |||
Feature: Multiple cursors core | |||
In order to make efficient changes | |||
As an Emacs user with multiple-cursors | |||
I want to change multiple parts of the buffer at once | |||
Scenario: Exiting multiple-cursors mode with return | |||
Given I have cursors at "text" in "This text contains the word text twice" | |||
And I press "<return>" | |||
Then I should have one cursor | |||
Scenario: Exiting multiple-cursors mode with C-g | |||
Given I have cursors at "text" in "This text contains the word text twice" | |||
And I press "C-g" | |||
Then I should have one cursor | |||
Scenario: Separate kill-rings | |||
Given I have cursors at "text" in "This text contains the word text twice" | |||
When I press "M-f" | |||
And I press "M-d" | |||
And I press "M-b" | |||
And I press "C-y" | |||
Then I should see "This containstext the word twicetext" | |||
Scenario: Separate kill-rings, yank-pop | |||
Given I have cursors at "text" in "This text contains the word text twice" | |||
When I press "M-d" | |||
And I press "C-f" | |||
And I press "M-d" | |||
And I press "C-y M-y" | |||
Then I should see "This text the word text" | |||
Scenario: Multiple lambdas | |||
Given I have bound C-! to a lambda that inserts "a" | |||
And I have cursors at "text" in "This text contains the word text twice" | |||
When I press "C-!" | |||
Then I should see "This atext contains the word atext twice" | |||
Scenario: Multiple supported command (forward-word in this case) | |||
Given I have cursors at "text" in "This text contains the word text twice" | |||
And I type "(" | |||
And I press "M-f" | |||
And I press "M-f" | |||
And I type ")" | |||
Then I should see "This (text contains) the word (text twice)" | |||
Scenario: Unknown command: yes, do for all | |||
Given I have bound C-! to a new command that inserts "a" | |||
And I have cursors at "text" in "This text contains the word text twice" | |||
When I press "C-! y" | |||
And I press "C-!" | |||
Then I should see "This aatext contains the word aatext twice" | |||
Scenario: Unknown command: no, don't do for all | |||
Given I have bound C-! to another new command that inserts "a" | |||
And I have cursors at "text" in "This text contains the word text twice" | |||
When I press "C-! n" | |||
And I press "C-!" | |||
Then I should see "This aatext contains the word text twice" | |||
Scenario: Undo | |||
Given I have cursors at "text" in "This text contains the word text twice" | |||
When I press "M-f" | |||
And I press "M-DEL" | |||
And I press "C-_" | |||
And I type "!" | |||
Then I should see "This text! contains the word text! twice" | |||
Scenario: Setting and popping mark | |||
Given I have cursors at "text" in "This text contains the word text twice" | |||
And I press "C-SPC" | |||
And I press "M-f" | |||
And I press "C-u C-SPC" | |||
And I type "!" | |||
Then I should see "This !text contains the word !text twice" | |||
Scenario: delete-selection-mode (self-insert-command) | |||
Given I turn on delete-selection-mode | |||
And I have cursors at "text" in "This text contains the word text twice" | |||
And I press "C-SPC" | |||
And I press "M-f" | |||
And I type "!" | |||
Then I should see "This ! contains the word ! twice" | |||
Scenario: delete-selection-mode (delete-char) | |||
Given I turn on delete-selection-mode | |||
And I have cursors at "text" in "This text contains the word text twice" | |||
And I press "C-SPC" | |||
And I press "M-f" | |||
And I press "C-d" | |||
Then I should see "This contains the word twice" | |||
Scenario: delete-selection-mode (yank) | |||
Given I turn on delete-selection-mode | |||
And I have cursors at "text" in "This text contains the word text twice" | |||
And I press "M-b" | |||
And I press "C-SPC" | |||
And I press "M-f" | |||
And I press "M-w" | |||
And I press "C-SPC" | |||
And I press "M-f" | |||
And I press "C-y" | |||
Then I should see "ThisThis contains the wordword twice" | |||
Scenario: subword-mode | |||
Given I turn on subword-mode | |||
And I have cursors at "textSnippet" in "This textSnippet contains the word textSnippet twice" | |||
And I press "M-f" | |||
And I type "_" | |||
And I press "M-l" | |||
Then I should see "This text_snippet contains the word text_snippet twice" | |||
Scenario: cua-mode | |||
Given I turn on cua-mode | |||
And I insert "This text contains the word text twice" | |||
And I go to the front of the word "text" | |||
And I press "C-SPC" | |||
And I press "M-f" | |||
And I mark next like this | |||
And I type "!" | |||
Then I should see "This ! contains the word ! twice" | |||
Scenario: wrap-region (function turns to keyboard macros) | |||
Given I turn on wrap-region-mode | |||
And I insert "This text contains the word text twice" | |||
And I go to the front of the word "text" | |||
And I press "C-M-SPC" | |||
And I mark next like this | |||
And I press "C-g" | |||
And I type "(" | |||
Then I should see "This (text contains the word (text twice" | |||
Scenario: Bound keyboard macros | |||
Given I have bound C-! to a keyboard macro that insert "_" | |||
And I have cursors at "text" in "This text contains the word text twice" | |||
When I press "C-!" | |||
When I press "C-!" | |||
Then I should see "This __text contains the word __text twice" | |||
Scenario: Interprogram paste | |||
Given I have cursors at "text" in "This text contains the word text twice" | |||
When I copy "external" in another program | |||
And I press "C-y" | |||
Then I should see "This externaltext contains the word externaltext twice" | |||
Scenario: Added to killed-rectangle after exiting multiple-cursors-mode | |||
Given I have cursors at "text" in "This text contains the word text twice" | |||
When I press "M-f" | |||
And I press "C-f" | |||
And I press "C-SPC" | |||
And I press "M-f" | |||
And I press "M-w" | |||
And I press "<return>" | |||
And I press "C-a" | |||
And I press "C-k" | |||
And I press "C-x r y" | |||
Then I should see: | |||
""" | |||
contains | |||
twice | |||
""" | |||
Scenario: Looping forwards around cursors | |||
Given I have cursors at "_" in "1_34567_9" | |||
And I press "C-v" | |||
And I press "C-v" | |||
And I press "C-v" | |||
Then the cursor should be at point "8" | |||
Scenario: Looping forwards around cursors including one at point-max | |||
Given I have cursors at "_" in "1_34_67_" | |||
And I press "C-f" | |||
And I press "C-v" | |||
And I press "C-v" | |||
And I press "C-v" | |||
Then the cursor should be at point "3" | |||
Scenario: Looping backwards around cursors | |||
Given I have cursors at "_" in "1_34567_9" | |||
And I press "M-v" | |||
And I press "M-v" | |||
Then the cursor should be at point "2" | |||
Scenario: Looping backwards around cursors including one at point-min | |||
Given I have cursors at "_" in "_234_67_9" | |||
And I press "M-v" | |||
And I press "M-v" | |||
And I press "M-v" | |||
Then the cursor should be at point "1" |
@@ -1,73 +0,0 @@ | |||
Feature: Rectangular region | |||
Scenario: Works like regular region when on one line | |||
When I insert "some text" | |||
And I press "H-SPC" | |||
And I press "M-b" | |||
Then the region should be "text" | |||
And rectangular-region-mode should be on | |||
Scenario: Works like regular region when on one line, insert | |||
Given I turn on delete-selection-mode | |||
When I insert "some text" | |||
And I press "H-SPC" | |||
And I press "M-b" | |||
And I type "replacement" | |||
Then I should see "some replacement" | |||
And rectangular-region-mode should be off | |||
Scenario: Works like regular region when on one line, copy 1 | |||
Given I turn on delete-selection-mode | |||
When I insert "some text" | |||
And I press "H-SPC" | |||
And I press "M-b" | |||
And I press "M-w" | |||
Then rectangular-region-mode should be off | |||
Scenario: Works like regular region when on one line, copy 2 | |||
Given I turn on delete-selection-mode | |||
When I insert "some text" | |||
And I press "H-SPC" | |||
And I press "M-b" | |||
And I press "M-w" | |||
And I press "C-y" | |||
Then I should see "some texttext" | |||
Scenario: Changing multiple lines | |||
Given I turn on delete-selection-mode | |||
When I insert: | |||
""" | |||
This is some text | |||
This is more text | |||
""" | |||
And I go to point "6" | |||
And I press "H-SPC" | |||
And I press "M-f" | |||
And I press "C-n" | |||
And I type "was" | |||
Then I should see: | |||
""" | |||
This was some text | |||
This was more text | |||
""" | |||
And I should have 2 cursors | |||
Scenario: Changing multiple lines with gaps | |||
Given I turn on delete-selection-mode | |||
When I insert: | |||
""" | |||
This is some text | |||
This is more text | |||
""" | |||
And I go to point "6" | |||
And I press "H-SPC" | |||
And I go to the end of the word "more" | |||
And I type "was" | |||
Then I should see: | |||
""" | |||
This was text | |||
This was text | |||
""" | |||
And I should have 2 cursors |
@@ -1,19 +0,0 @@ | |||
Feature: Sorting and reversing cursor regions | |||
Scenario: Reversing regions | |||
Given I have cursors at "text" in "This text contains the word text thrice (text here)" | |||
When I press "M-f" | |||
And I press "C-f" | |||
And I press "C-SPC" | |||
And I press "M-f" | |||
And I press "H-1" | |||
Then I should see "This text here the word text thrice (text contains)" | |||
Scenario: Sorting regions | |||
Given I have cursors at "text" in "This text contains the word text thrice (text here)" | |||
When I press "M-f" | |||
And I press "C-f" | |||
And I press "C-SPC" | |||
And I press "M-f" | |||
And I press "H-2" | |||
Then I should see "This text contains the word text here (text thrice)" |
@@ -1,139 +0,0 @@ | |||
(When "^I mark next like this$" | |||
(lambda () (call-interactively 'mc/mark-next-like-this))) | |||
(When "^I mark previous like this$" | |||
(lambda () (call-interactively 'mc/mark-previous-like-this))) | |||
(When "^I mark all like this$" | |||
(lambda () (call-interactively 'mc/mark-all-like-this))) | |||
(When "^I mark all like this dwim$" | |||
(lambda () (call-interactively 'mc/mark-all-like-this-dwim))) | |||
(When "^I mark all in region$" | |||
(lambda () (call-interactively 'mc/mark-all-in-region))) | |||
(When "^I insert numbers$" | |||
(lambda () (call-interactively 'mc/insert-numbers))) | |||
(When "^I reverse regions$" | |||
(lambda () (call-interactively 'mc/reverse-regions))) | |||
(When "^I sort regions$" | |||
(lambda () (call-interactively 'mc/sort-regions))) | |||
(When "^I edit lines$" | |||
(lambda () (call-interactively 'mc/edit-lines))) | |||
(When "^I set rectangular region anchor$" | |||
(lambda () (call-interactively 'set-rectangular-region-anchor))) | |||
(And "^delete-selection-mode is active$" | |||
(lambda () | |||
(delete-selection-mode 1))) | |||
(Given "^I turn off transient-mark-mode$" | |||
(lambda () | |||
(transient-mark-mode -1))) | |||
(Then "^I should have \\([0-9]+\\) cursors$" | |||
(lambda (num) | |||
(let ((actual (mc/num-cursors))) | |||
(assert (eq (string-to-number num) actual) nil | |||
"Expected to have %s cursors, but was %d." num actual)))) | |||
(Then "^I should have one cursor$" | |||
(lambda () | |||
(assert (not multiple-cursors-mode) nil | |||
"Expected to have one cursor, but multiple-cursors-mode is still active.") | |||
(assert (eq 1 (mc/num-cursors)) nil | |||
"Expected to have one cursor, but there are still fake cursor overlays."))) | |||
(Then "^rectangular-region-mode should be off$" | |||
(lambda () | |||
(assert (not rectangular-region-mode) nil | |||
"Expected rectangular-region-mode mode to be off, but wasn't."))) | |||
(Then "^rectangular-region-mode should be on$" | |||
(lambda () | |||
(assert rectangular-region-mode nil | |||
"Expected rectangular-region-mode mode to be on, but wasn't."))) | |||
(When "^I press \"\\(.+\\)\"$" | |||
(lambda (keybinding) | |||
(let ((macro (edmacro-parse-keys keybinding))) | |||
(if espuds-chain-active | |||
(setq espuds-action-chain (vconcat espuds-action-chain macro)) | |||
(if (and (equal keybinding "C-g") | |||
(eq (key-binding (kbd "C-g")) 'keyboard-quit)) | |||
(espuds-quit) | |||
(execute-kbd-macro macro)))))) | |||
(Given "^I have cursors at \"\\(.+\\)\" in \"\\(.+\\)\"$" | |||
(lambda (needle haystack) | |||
(insert haystack) | |||
(goto-char (point-min)) | |||
(search-forward needle) | |||
(set-mark (point)) | |||
(goto-char (match-beginning 0)) | |||
(mc/mark-all-like-this) | |||
(mc/keyboard-quit))) | |||
(When "^I copy \"\\(.+\\)\" in another program$" | |||
(lambda (text) | |||
(lexical-let ((text text)) | |||
(setq interprogram-paste-function | |||
#'(lambda () (let ((r text)) (setq text nil) r)))))) | |||
(Given "^I have bound C-! to a lambda that inserts \"\\(.+\\)\"$" | |||
(lambda (ins) | |||
(lexical-let ((ins ins)) | |||
(global-set-key (kbd "C-!") #'(lambda () (interactive) (insert ins)))))) | |||
(Given "^I have bound C-! to a new command that inserts \"\\(.+\\)\"$" | |||
(lambda (ins) | |||
(lexical-let ((ins ins)) | |||
(defun mc-test-temp-command () (interactive) (insert ins)) | |||
(global-set-key (kbd "C-!") 'mc-test-temp-command)))) | |||
(Given "^I have bound C-! to another new command that inserts \"\\(.+\\)\"$" | |||
(lambda (ins) | |||
(lexical-let ((ins ins)) | |||
(defun mc-test-temp-command-2 () (interactive) (insert ins)) | |||
(global-set-key (kbd "C-!") 'mc-test-temp-command-2)))) | |||
(Given "^I have bound C-! to a keyboard macro that insert \"_\"$" | |||
(lambda () | |||
(fset 'mc-test-temp-kmacro "\C-q_") | |||
(global-set-key (kbd "C-!") 'mc-test-temp-kmacro))) | |||
(When "^I go to character \"\\(.+\\)\"$" | |||
(lambda (char) | |||
(goto-char (point-min)) | |||
(let ((search (re-search-forward (format "%s" char) nil t)) | |||
(message "Can not go to character '%s' since it does not exist in the current buffer: %s")) | |||
(assert search nil message char (espuds-buffer-contents))))) | |||
(When "^I go to the \\(front\\|end\\) of the word \"\\(.+\\)\"$" | |||
(lambda (pos word) | |||
(goto-char (point-min)) | |||
(let ((search (re-search-forward (format "%s" word) nil t)) | |||
(message "Can not go to character '%s' since it does not exist in the current buffer: %s")) | |||
(assert search nil message word (espuds-buffer-contents)) | |||
(if (string-equal "front" pos) (backward-word))))) | |||
(When "^I select the last \"\\(.+\\)\"$" | |||
(lambda (text) | |||
(goto-char (point-max)) | |||
(let ((search (re-search-backward text nil t))) | |||
(assert search nil "The text '%s' was not found in the current buffer." text)) | |||
(set-mark (point)) | |||
(re-search-forward text))) | |||
(When "^I mark all \\(.+\\)$" | |||
(lambda (rest) | |||
(let ((func (intern (mapconcat 'identity | |||
(cons "mc/mark-all" | |||
(split-string rest)) | |||
"-")))) | |||
(call-interactively func)))) |
@@ -1,45 +0,0 @@ | |||
(let* ((current-directory (file-name-directory load-file-name)) | |||
(features-directory (expand-file-name ".." current-directory)) | |||
(project-directory (expand-file-name ".." features-directory))) | |||
(setq multiple-cursors-root-path project-directory) | |||
(setq multiple-cursors-util-path (expand-file-name "util" project-directory))) | |||
(add-to-list 'load-path multiple-cursors-root-path) | |||
(add-to-list 'load-path multiple-cursors-util-path) | |||
(add-to-list 'load-path (expand-file-name "espuds" multiple-cursors-util-path)) | |||
(add-to-list 'load-path (expand-file-name "vendor" multiple-cursors-util-path)) | |||
(require 'multiple-cursors) | |||
(require 'espuds) | |||
(require 'ert) | |||
(require 'wrap-region) | |||
(defun mc/save-lists ()) ;; redefine to do nothing when running tests | |||
(Before | |||
(cua-mode 0) | |||
(multiple-cursors-mode 0) | |||
(rectangular-region-mode 0) | |||
(global-set-key (kbd "C->") 'mc/mark-next-like-this) | |||
(global-set-key (kbd "C-<") 'mc/mark-previous-like-this) | |||
(global-set-key (kbd "M-!") 'mc/mark-all-like-this) | |||
(global-set-key (kbd "M-$") 'mc/mark-all-like-this-dwim) | |||
(global-set-key (kbd "C-$") 'mc/mark-all-dwim) | |||
(global-set-key (kbd "M-#") 'mc/mark-all-in-region) | |||
(global-set-key (kbd "H-0") 'mc/insert-numbers) | |||
(global-set-key (kbd "H-1") 'mc/reverse-regions) | |||
(global-set-key (kbd "H-2") 'mc/sort-regions) | |||
(global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines) | |||
(global-set-key (kbd "H-SPC") 'set-rectangular-region-anchor) | |||
(switch-to-buffer | |||
(get-buffer-create "*multiple-cursors*")) | |||
(erase-buffer) | |||
(transient-mark-mode 1) | |||
(cua-mode 0) | |||
(delete-selection-mode 0) | |||
(subword-mode 0) | |||
(wrap-region-mode 0) | |||
(setq set-mark-default-inactive nil) | |||
(deactivate-mark)) | |||
(After) |
@@ -1,122 +0,0 @@ | |||
;;; mc-cycle-cursors.el | |||
;; Copyright (C) 2012 Magnar Sveen | |||
;; Author: Magnar Sveen <magnars@gmail.com> | |||
;; Keywords: editing cursors | |||
;; This program is free software; you can redistribute it and/or modify | |||
;; it under the terms of the GNU General Public License as published by | |||
;; the Free Software Foundation, either version 3 of the License, or | |||
;; (at your option) any later version. | |||
;; This program is distributed in the hope that it will be useful, | |||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
;; GNU General Public License for more details. | |||
;; You should have received a copy of the GNU General Public License | |||
;; along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
;;; Commentary: | |||
;; This scrolls the buffer to center each cursor in turn. | |||
;; Scroll down with C-v, scroll up with M-v | |||
;; This is nice when you have cursors that's outside of your view. | |||
;;; Code: | |||
(require 'multiple-cursors-core) | |||
(eval-when-compile (require 'cl)) | |||
(defun mc/next-fake-cursor-after-point () | |||
(let ((pos (point)) | |||
(next-pos (1+ (point-max))) | |||
next) | |||
(mc/for-each-fake-cursor | |||
(let ((cursor-pos (overlay-get cursor 'point))) | |||
(when (and (< pos cursor-pos) | |||
(< cursor-pos next-pos)) | |||
(setq next-pos cursor-pos) | |||
(setq next cursor)))) | |||
next)) | |||
(defun mc/prev-fake-cursor-before-point () | |||
(let ((pos (point)) | |||
(prev-pos (1- (point-min))) | |||
prev) | |||
(mc/for-each-fake-cursor | |||
(let ((cursor-pos (overlay-get cursor 'point))) | |||
(when (and (> pos cursor-pos) | |||
(> cursor-pos prev-pos)) | |||
(setq prev-pos cursor-pos) | |||
(setq prev cursor)))) | |||
prev)) | |||
(defcustom mc/cycle-looping-behaviour 'continue | |||
"What to do if asked to cycle beyond the last cursor or before the first cursor." | |||
:type '(radio (const :tag "Loop around to beginning/end of document." continue) | |||
(const :tag "Warn and then loop around." warn) | |||
(const :tag "Signal an error." error) | |||
(const :tag "Don't loop." stop)) | |||
:group 'multiple-cursors) | |||
(defun mc/handle-loop-condition (error-message) | |||
(ecase mc/cycle-looping-behaviour | |||
(error (error error-message)) | |||
(warn (message error-message)) | |||
(continue 'continue) | |||
(stop 'stop))) | |||
(defun mc/first-fake-cursor-after (point) | |||
"Very similar to mc/furthest-cursor-before-point, but ignores (mark) and (point)." | |||
(let* ((cursors (mc/all-fake-cursors)) | |||
(cursors-after-point (remove-if (lambda (cursor) | |||
(< (mc/cursor-beg cursor) point)) | |||
cursors)) | |||
(cursors-in-order (sort* cursors-after-point '< :key 'mc/cursor-beg))) | |||
(first cursors-in-order))) | |||
(defun mc/last-fake-cursor-before (point) | |||
"Very similar to mc/furthest-cursor-before-point, but ignores (mark) and (point)." | |||
(let* ((cursors (mc/all-fake-cursors)) | |||
(cursors-before-point (remove-if (lambda (cursor) | |||
(> (mc/cursor-end cursor) point)) | |||
cursors)) | |||
(cursors-in-order (sort* cursors-before-point '> :key 'mc/cursor-end))) | |||
(first cursors-in-order))) | |||
(defun* mc/cycle (next-cursor fallback-cursor loop-message) | |||
(when (null next-cursor) | |||
(when (eql 'stop (mc/handle-loop-condition loop-message)) | |||
(return-from mc/cycle nil)) | |||
(setf next-cursor fallback-cursor)) | |||
(mc/create-fake-cursor-at-point) | |||
(mc/pop-state-from-overlay next-cursor) | |||
(recenter)) | |||
(defun mc/cycle-forward () | |||
(interactive) | |||
(mc/cycle (mc/next-fake-cursor-after-point) | |||
(mc/first-fake-cursor-after (point-min)) | |||
"We're already at the last cursor.")) | |||
(defun mc/cycle-backward () | |||
(interactive) | |||
(mc/cycle (mc/prev-fake-cursor-before-point) | |||
(mc/last-fake-cursor-before (point-max)) | |||
"We're already at the last cursor")) | |||
(define-key mc/keymap (kbd "C-v") 'mc/cycle-forward) | |||
(define-key mc/keymap (kbd "M-v") 'mc/cycle-backward) | |||
(provide 'mc-cycle-cursors) | |||
;; Local Variables: | |||
;; coding: utf-8 | |||
;; byte-compile-warnings: (not cl-functions) | |||
;; End: | |||
;;; mc-cycle-cursors.el ends here |
@@ -1,110 +0,0 @@ | |||
;;; mc-edit-lines.el | |||
;; Copyright (C) 2012 Magnar Sveen | |||
;; Author: Magnar Sveen <magnars@gmail.com> | |||
;; Keywords: editing cursors | |||
;; This program is free software; you can redistribute it and/or modify | |||
;; it under the terms of the GNU General Public License as published by | |||
;; the Free Software Foundation, either version 3 of the License, or | |||
;; (at your option) any later version. | |||
;; This program is distributed in the hope that it will be useful, | |||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
;; GNU General Public License for more details. | |||
;; You should have received a copy of the GNU General Public License | |||
;; along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
;;; Commentary: | |||
;; This file contains functions to add multiple cursors to consecutive lines | |||
;; given an active region. | |||
;; Please see multiple-cursors.el for more commentary. | |||
;;; Code: | |||
(require 'multiple-cursors-core) | |||
(defcustom mc/edit-lines-empty-lines nil | |||
"What should be done by `mc/edit-lines' when a line is not long enough." | |||
:type '(radio (const :tag "Pad the line with spaces." pad) | |||
(const :tag "Ignore the line." ignore) | |||
(const :tag "Signal an error." error) | |||
(const :tag "Nothing. Cursor is at end of line." nil)) | |||
:group 'multiple-cursors) | |||
;;;###autoload | |||
(defun mc/edit-lines (&optional arg) | |||
"Add one cursor to each line of the active region. | |||
Starts from mark and moves in straight down or up towards the | |||
line point is on. | |||
What is done with lines which are not long enough is governed by | |||
`mc/edit-lines-empty-lines'. The prefix argument ARG can be used | |||
to override this. If ARG is a symbol (when called from Lisp), | |||
that symbol is used instead of `mc/edit-lines-empty-lines'. | |||
Otherwise, if ARG negative, short lines will be ignored. Any | |||
other non-nil value will cause short lines to be padded." | |||
(interactive "P") | |||
(when (not (and mark-active (/= (point) (mark)))) | |||
(error "Mark a set of lines first")) | |||
(mc/remove-fake-cursors) | |||
(let* ((col (current-column)) | |||
(point-line (line-number-at-pos)) | |||
(mark-line (progn (exchange-point-and-mark) (line-number-at-pos))) | |||
(direction (if (< point-line mark-line) :up :down)) | |||
(style (cond | |||
;; called from lisp | |||
((and arg (symbolp arg)) | |||
arg) | |||
;; negative argument | |||
((< (prefix-numeric-value arg) 0) | |||
'ignore) | |||
(arg 'pad) | |||
(t mc/edit-lines-empty-lines)))) | |||
(deactivate-mark) | |||
(when (and (eq direction :up) (bolp)) | |||
(previous-logical-line 1 nil) | |||
(move-to-column col)) | |||
;; Add the cursors | |||
(while (not (eq (line-number-at-pos) point-line)) | |||
;; Pad the line | |||
(when (eq style 'pad) | |||
(while (< (current-column) col) | |||
(insert " "))) | |||
;; Error | |||
(when (and (eq style 'error) | |||
(not (equal col (current-column)))) | |||
(error "Short line encountered in `mc/edit-lines'")) | |||
;; create the cursor | |||
(unless (and (eq style 'ignore) | |||
(not (equal col (current-column)))) | |||
(mc/create-fake-cursor-at-point)) | |||
;; proceed to next | |||
(if (eq direction :up) | |||
(previous-logical-line 1 nil) | |||
(next-logical-line 1 nil)) | |||
(move-to-column col)) | |||
(multiple-cursors-mode))) | |||
;;;###autoload | |||
(defun mc/edit-ends-of-lines () | |||
"Add one cursor to the end of each line in the active region." | |||
(interactive) | |||
(mc/edit-lines) | |||
(mc/execute-command-for-all-cursors 'end-of-line)) | |||
;;;###autoload | |||
(defun mc/edit-beginnings-of-lines () | |||
"Add one cursor to the beginning of each line in the active region." | |||
(interactive) | |||
(mc/edit-lines) | |||
(mc/execute-command-for-all-cursors 'beginning-of-line)) | |||
(provide 'mc-edit-lines) | |||
;;; mc-edit-lines.el ends here |
@@ -1,561 +0,0 @@ | |||
;;; mc-mark-more.el | |||
;; Copyright (C) 2012 Magnar Sveen | |||
;; Author: Magnar Sveen <magnars@gmail.com> | |||
;; Keywords: editing cursors | |||
;; This program is free software; you can redistribute it and/or modify | |||
;; it under the terms of the GNU General Public License as published by | |||
;; the Free Software Foundation, either version 3 of the License, or | |||
;; (at your option) any later version. | |||
;; This program is distributed in the hope that it will be useful, | |||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
;; GNU General Public License for more details. | |||
;; You should have received a copy of the GNU General Public License | |||
;; along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
;;; Commentary: | |||
;; This file contains functions to mark more parts of the buffer. | |||
;; See ./features/mark-more.feature for examples. | |||
;; Please see multiple-cursors.el for more commentary. | |||
;;; Code: | |||
(require 'multiple-cursors-core) | |||
(require 'thingatpt) | |||
(defun mc/cursor-end (cursor) | |||
(if (overlay-get cursor 'mark-active) | |||
(max (overlay-get cursor 'point) | |||
(overlay-get cursor 'mark)) | |||
(overlay-get cursor 'point))) | |||
(defun mc/cursor-beg (cursor) | |||
(if (overlay-get cursor 'mark-active) | |||
(min (overlay-get cursor 'point) | |||
(overlay-get cursor 'mark)) | |||
(overlay-get cursor 'point))) | |||
(defun mc/furthest-region-end () | |||
(let ((end (max (mark) (point)))) | |||
(mc/for-each-fake-cursor | |||
(setq end (max end (mc/cursor-end cursor)))) | |||
end)) | |||
(defun mc/first-region-start () | |||
(let ((beg (min (mark) (point)))) | |||
(mc/for-each-fake-cursor | |||
(setq beg (min beg (mc/cursor-beg cursor)))) | |||
beg)) | |||
(defun mc/furthest-cursor-before-point () | |||
(let ((beg (min (mark) (point))) | |||
furthest) | |||
(mc/for-each-fake-cursor | |||
(when (< (mc/cursor-beg cursor) beg) | |||
(setq beg (mc/cursor-beg cursor)) | |||
(setq furthest cursor))) | |||
furthest)) | |||
(defun mc/furthest-cursor-after-point () | |||
(let ((end (max (mark) (point))) | |||
furthest) | |||
(mc/for-each-fake-cursor | |||
(when (> (mc/cursor-end cursor) end) | |||
(setq end (mc/cursor-end cursor)) | |||
(setq furthest cursor))) | |||
furthest)) | |||
(defun mc/region-strings () | |||
(let ((strings (list (buffer-substring-no-properties (point) (mark))))) | |||
(mc/for-each-fake-cursor | |||
(add-to-list 'strings (buffer-substring-no-properties | |||
(mc/cursor-beg cursor) | |||
(mc/cursor-end cursor)))) | |||
strings)) | |||
(defvar mc/enclose-search-term nil | |||
"How should mc/mark-more-* search for more matches? | |||
Match everything: nil | |||
Match only whole words: 'words | |||
Match only whole symbols: 'symbols | |||
Use like case-fold-search, don't recommend setting it globally.") | |||
(defun mc/mark-more-like-this (skip-last direction) | |||
(let ((case-fold-search nil) | |||
(re (regexp-opt (mc/region-strings) mc/enclose-search-term)) | |||
(point-out-of-order (ecase direction | |||
(forwards (< (point) (mark))) | |||
(backwards (not (< (point) (mark)))))) | |||
(furthest-cursor (ecase direction | |||
(forwards (mc/furthest-cursor-after-point)) | |||
(backwards (mc/furthest-cursor-before-point)))) | |||
(start-char (ecase direction | |||
(forwards (mc/furthest-region-end)) | |||
(backwards (mc/first-region-start)))) | |||
(search-function (ecase direction | |||
(forwards 'search-forward-regexp) | |||
(backwards 'search-backward-regexp))) | |||
(match-point-getter (ecase direction | |||
(forwards 'match-beginning) | |||
(backwards 'match-end)))) | |||
(if (and skip-last (not furthest-cursor)) | |||
(error "No cursors to be skipped") | |||
(mc/save-excursion | |||
(goto-char start-char) | |||
(when skip-last | |||
(mc/remove-fake-cursor furthest-cursor)) | |||
(if (funcall search-function re nil t) | |||
(progn | |||
(push-mark (funcall match-point-getter 0)) | |||
(when point-out-of-order | |||
(exchange-point-and-mark)) | |||
(mc/create-fake-cursor-at-point)) | |||
(error "no more matches found.")))))) | |||
;;;###autoload | |||
(defun mc/mark-next-like-this (arg) | |||
"Find and mark the next part of the buffer matching the currently active region | |||
With negative ARG, delete the last one instead. | |||
With zero ARG, skip the last one and mark next." | |||
(interactive "p") | |||
(if (region-active-p) | |||
(if (< arg 0) | |||
(let ((cursor (mc/furthest-cursor-after-point))) | |||
(if cursor | |||
(mc/remove-fake-cursor cursor) | |||
(error "No cursors to be unmarked"))) | |||
(mc/mark-more-like-this (= arg 0) 'forwards)) | |||
(mc/mark-lines arg 'forwards)) | |||
(mc/maybe-multiple-cursors-mode)) | |||
;;;###autoload | |||
(defun mc/mark-next-word-like-this (arg) | |||
(interactive "p") | |||
(let ((mc/enclose-search-term 'words)) | |||
(mc/mark-next-like-this arg))) | |||
;;;###autoload | |||
(defun mc/mark-next-symbol-like-this (arg) | |||
(interactive "p") | |||
(let ((mc/enclose-search-term 'symbols)) | |||
(mc/mark-next-like-this arg))) | |||
;;;###autoload | |||
(defun mc/mark-previous-like-this (arg) | |||
"Find and mark the previous part of the buffer matching the currently active region | |||
With negative ARG, delete the last one instead. | |||
With zero ARG, skip the last one and mark next." | |||
(interactive "p") | |||
(if (region-active-p) | |||
(if (< arg 0) | |||
(let ((cursor (mc/furthest-cursor-before-point))) | |||
(if cursor | |||
(mc/remove-fake-cursor cursor) | |||
(error "No cursors to be unmarked"))) | |||
(mc/mark-more-like-this (= arg 0) 'backwards)) | |||
(mc/mark-lines arg 'backwards)) | |||
(mc/maybe-multiple-cursors-mode)) | |||
;;;###autoload | |||
(defun mc/mark-previous-word-like-this (arg) | |||
(interactive "p") | |||
(let ((mc/enclose-search-term 'words)) | |||
(mc/mark-previous-like-this arg))) | |||
;;;###autoload | |||
(defun mc/mark-previous-symbol-like-this (arg) | |||
(interactive "p") | |||
(let ((mc/enclose-search-term 'symbols)) | |||
(mc/mark-previous-like-this arg))) | |||
(defun mc/mark-lines (num-lines direction) | |||
(dotimes (i num-lines) | |||
(mc/create-fake-cursor-at-point) | |||
(ecase direction | |||
(forwards (loop do (next-logical-line 1 nil) | |||
while (mc/all-fake-cursors (point) (1+ (point))))) | |||
(backwards (loop do (previous-logical-line 1 nil) | |||
while (mc/all-fake-cursors (point) (1+ (point)))))))) | |||
;;;###autoload | |||
(defun mc/mark-next-lines (arg) | |||
(interactive "p") | |||
(mc/mark-lines arg 'forwards) | |||
(mc/maybe-multiple-cursors-mode)) | |||
;;;###autoload | |||
(defun mc/mark-previous-lines (arg) | |||
(interactive "p") | |||
(mc/mark-lines arg 'backwards) | |||
(mc/maybe-multiple-cursors-mode)) | |||
;;;###autoload | |||
(defun mc/unmark-next-like-this () | |||
"Deselect next part of the buffer matching the currently active region." | |||
(interactive) | |||
(mc/mark-next-like-this -1)) | |||
;;;###autoload | |||
(defun mc/unmark-previous-like-this () | |||
"Deselect prev part of the buffer matching the currently active region." | |||
(interactive) | |||
(mc/mark-previous-like-this -1)) | |||
;;;###autoload | |||
(defun mc/skip-to-next-like-this () | |||
"Skip the current one and select the next part of the buffer matching the currently active region." | |||
(interactive) | |||
(mc/mark-next-like-this 0)) | |||
;;;###autoload | |||
(defun mc/skip-to-previous-like-this () | |||
"Skip the current one and select the prev part of the buffer matching the currently active region." | |||
(interactive) | |||
(mc/mark-previous-like-this 0)) | |||
;;;###autoload | |||
(defun mc/mark-all-like-this () | |||
"Find and mark all the parts of the buffer matching the currently active region" | |||
(interactive) | |||
(unless (region-active-p) | |||
(error "Mark a region to match first.")) | |||
(mc/remove-fake-cursors) | |||
(let ((master (point)) | |||
(case-fold-search nil) | |||
(point-first (< (point) (mark))) | |||
(re (regexp-opt (mc/region-strings) mc/enclose-search-term))) | |||
(mc/save-excursion | |||
(goto-char 0) | |||
(while (search-forward-regexp re nil t) | |||
(push-mark (match-beginning 0)) | |||
(when point-first (exchange-point-and-mark)) | |||
(unless (= master (point)) | |||
(mc/create-fake-cursor-at-point)) | |||
(when point-first (exchange-point-and-mark))))) | |||
(if (> (mc/num-cursors) 1) | |||
(multiple-cursors-mode 1) | |||
(multiple-cursors-mode 0))) | |||
(defun mc--select-thing-at-point (thing) | |||
(let ((bound (bounds-of-thing-at-point thing))) | |||
(when bound | |||
(set-mark (car bound)) | |||
(goto-char (cdr bound)) | |||
bound))) | |||
(defun mc--select-thing-at-point-or-bark (thing) | |||
(unless (or (region-active-p) (mc--select-thing-at-point thing)) | |||
(error "Mark a region or set cursor on a %s." thing))) | |||
;;;###autoload | |||
(defun mc/mark-all-words-like-this () | |||
(interactive) | |||
(mc--select-thing-at-point-or-bark 'word) | |||
(let ((mc/enclose-search-term 'words)) | |||
(mc/mark-all-like-this))) | |||
;;;###autoload | |||
(defun mc/mark-all-symbols-like-this () | |||
(interactive) | |||
(mc--select-thing-at-point-or-bark 'symbol) | |||
(let ((mc/enclose-search-term 'symbols)) | |||
(mc/mark-all-like-this))) | |||
;;;###autoload | |||
(defun mc/mark-all-in-region (beg end) | |||
"Find and mark all the parts in the region matching the given search" | |||
(interactive "r") | |||
(let ((search (read-from-minibuffer "Mark all in region: ")) | |||
(case-fold-search nil)) | |||
(if (string= search "") | |||
(message "Mark aborted") | |||
(progn | |||
(mc/remove-fake-cursors) | |||
(goto-char beg) | |||
(while (search-forward search end t) | |||
(push-mark (match-beginning 0)) | |||
(mc/create-fake-cursor-at-point)) | |||
(let ((first (mc/furthest-cursor-before-point))) | |||
(if (not first) | |||
(error "Search failed for %S" search) | |||
(mc/pop-state-from-overlay first))) | |||
(if (> (mc/num-cursors) 1) | |||
(multiple-cursors-mode 1) | |||
(multiple-cursors-mode 0)))))) | |||
(when (not (fboundp 'set-temporary-overlay-map)) | |||
;; Backport this function from newer emacs versions | |||
(defun set-temporary-overlay-map (map &optional keep-pred) | |||
"Set a new keymap that will only exist for a short period of time. | |||
The new keymap to use must be given in the MAP variable. When to | |||
remove the keymap depends on user input and KEEP-PRED: | |||
- if KEEP-PRED is nil (the default), the keymap disappears as | |||
soon as any key is pressed, whether or not the key is in MAP; | |||
- if KEEP-PRED is t, the keymap disappears as soon as a key *not* | |||
in MAP is pressed; | |||
- otherwise, KEEP-PRED must be a 0-arguments predicate that will | |||
decide if the keymap should be removed (if predicate returns | |||
nil) or kept (otherwise). The predicate will be called after | |||
each key sequence." | |||
(let* ((clearfunsym (make-symbol "clear-temporary-overlay-map")) | |||
(overlaysym (make-symbol "t")) | |||
(alist (list (cons overlaysym map))) | |||
(clearfun | |||
`(lambda () | |||
(unless ,(cond ((null keep-pred) nil) | |||
((eq t keep-pred) | |||
`(eq this-command | |||
(lookup-key ',map | |||
(this-command-keys-vector)))) | |||
(t `(funcall ',keep-pred))) | |||
(remove-hook 'pre-command-hook ',clearfunsym) | |||
(setq emulation-mode-map-alists | |||
(delq ',alist emulation-mode-map-alists)))))) | |||
(set overlaysym overlaysym) | |||
(fset clearfunsym clearfun) | |||
(add-hook 'pre-command-hook clearfunsym) | |||
(push alist emulation-mode-map-alists)))) | |||
;;;###autoload | |||
(defun mc/mark-more-like-this-extended () | |||
"Like mark-more-like-this, but then lets you adjust with arrows key. | |||
The adjustments work like this: | |||
<up> Mark previous like this and set direction to 'up | |||
<down> Mark next like this and set direction to 'down | |||
If direction is 'up: | |||
<left> Skip past the cursor furthest up | |||
<right> Remove the cursor furthest up | |||
If direction is 'down: | |||
<left> Remove the cursor furthest down | |||
<right> Skip past the cursor furthest down | |||
The bindings for these commands can be changed. See `mc/mark-more-like-this-extended-keymap'." | |||
(interactive) | |||
(mc/mmlte--down) | |||
(set-temporary-overlay-map mc/mark-more-like-this-extended-keymap t)) | |||
(defvar mc/mark-more-like-this-extended-direction nil | |||
"When using mc/mark-more-like-this-extended are we working on the next or previous cursors?") | |||
(make-variable-buffer-local 'mc/mark-more-like-this-extended) | |||
(defun mc/mmlte--message () | |||
(if (eq mc/mark-more-like-this-extended-direction 'up) | |||
(message "<up> to mark previous, <left> to skip, <right> to remove, <down> to mark next") | |||
(message "<down> to mark next, <right> to skip, <left> to remove, <up> to mark previous"))) | |||
(defun mc/mmlte--up () | |||
(interactive) | |||
(mc/mark-previous-like-this 1) | |||
(setq mc/mark-more-like-this-extended-direction 'up) | |||
(mc/mmlte--message)) | |||
(defun mc/mmlte--down () | |||
(interactive) | |||
(mc/mark-next-like-this 1) | |||
(setq mc/mark-more-like-this-extended-direction 'down) | |||
(mc/mmlte--message)) | |||
(defun mc/mmlte--left () | |||
(interactive) | |||
(if (eq mc/mark-more-like-this-extended-direction 'down) | |||
(mc/unmark-next-like-this) | |||
(mc/skip-to-previous-like-this)) | |||
(mc/mmlte--message)) | |||
(defun mc/mmlte--right () | |||
(interactive) | |||
(if (eq mc/mark-more-like-this-extended-direction 'up) | |||
(mc/unmark-previous-like-this) | |||
(mc/skip-to-next-like-this)) | |||
(mc/mmlte--message)) | |||
(defvar mc/mark-more-like-this-extended-keymap (make-sparse-keymap)) | |||
(define-key mc/mark-more-like-this-extended-keymap (kbd "<up>") 'mc/mmlte--up) | |||
(define-key mc/mark-more-like-this-extended-keymap (kbd "<down>") 'mc/mmlte--down) | |||
(define-key mc/mark-more-like-this-extended-keymap (kbd "<left>") 'mc/mmlte--left) | |||
(define-key mc/mark-more-like-this-extended-keymap (kbd "<right>") 'mc/mmlte--right) | |||
(defvar mc--restrict-mark-all-to-symbols nil) | |||
;;;###autoload | |||
(defun mc/mark-all-like-this-dwim (arg) | |||
"Tries to guess what you want to mark all of. | |||
Can be pressed multiple times to increase selection. | |||
With prefix, it behaves the same as original `mc/mark-all-like-this'" | |||
(interactive "P") | |||
(if arg | |||
(mc/mark-all-like-this) | |||
(if (and (not (use-region-p)) | |||
(derived-mode-p 'sgml-mode) | |||
(mc--on-tag-name-p)) | |||
(mc/mark-sgml-tag-pair) | |||
(let ((before (mc/num-cursors))) | |||
(unless (eq last-command 'mc/mark-all-like-this-dwim) | |||
(setq mc--restrict-mark-all-to-symbols nil)) | |||
(unless (use-region-p) | |||
(mc--mark-symbol-at-point) | |||
(setq mc--restrict-mark-all-to-symbols t)) | |||
(if mc--restrict-mark-all-to-symbols | |||
(mc/mark-all-symbols-like-this-in-defun) | |||
(mc/mark-all-like-this-in-defun)) | |||
(when (<= (mc/num-cursors) before) | |||
(if mc--restrict-mark-all-to-symbols | |||
(mc/mark-all-symbols-like-this) | |||
(mc/mark-all-like-this))) | |||
(when (<= (mc/num-cursors) before) | |||
(mc/mark-all-like-this)))))) | |||
;;;###autoload | |||
(defun mc/mark-all-dwim (arg) | |||
"Tries even harder to guess what you want to mark all of. | |||
If the region is active and spans multiple lines, it will behave | |||
as if `mc/mark-all-in-region'. With the prefix ARG, it will call | |||
`mc/edit-lines' instead. | |||
If the region is inactive or on a single line, it will behave like | |||
`mc/mark-all-like-this-dwim'." | |||
(interactive "P") | |||
(if (and (use-region-p) | |||
(not (> (mc/num-cursors) 1)) | |||
(not (= (line-number-at-pos (region-beginning)) | |||
(line-number-at-pos (region-end))))) | |||
(if arg | |||
(call-interactively 'mc/edit-lines) | |||
(call-interactively 'mc/mark-all-in-region)) | |||
(progn | |||
(setq this-command 'mc/mark-all-like-this-dwim) | |||
(mc/mark-all-like-this-dwim arg)))) | |||
(defun mc--in-defun () | |||
(bounds-of-thing-at-point 'defun)) | |||
;;;###autoload | |||
(defun mc/mark-all-like-this-in-defun () | |||
"Mark all like this in defun." | |||
(interactive) | |||
(if (mc--in-defun) | |||
(save-restriction | |||
(widen) | |||
(narrow-to-defun) | |||
(mc/mark-all-like-this)) | |||
(mc/mark-all-like-this))) | |||
;;;###autoload | |||
(defun mc/mark-all-words-like-this-in-defun () | |||
"Mark all words like this in defun." | |||
(interactive) | |||
(mc--select-thing-at-point-or-bark 'word) | |||
(if (mc--in-defun) | |||
(save-restriction | |||
(widen) | |||
(narrow-to-defun) | |||
(mc/mark-all-words-like-this)) | |||
(mc/mark-all-words-like-this))) | |||
;;;###autoload | |||
(defun mc/mark-all-symbols-like-this-in-defun () | |||
"Mark all symbols like this in defun." | |||
(interactive) | |||
(mc--select-thing-at-point-or-bark 'symbol) | |||
(if (mc--in-defun) | |||
(save-restriction | |||
(widen) | |||
(narrow-to-defun) | |||
(mc/mark-all-symbols-like-this)) | |||
(mc/mark-all-symbols-like-this))) | |||
(defun mc--mark-symbol-at-point () | |||
"Select the symbol under cursor" | |||
(interactive) | |||
(when (not (use-region-p)) | |||
(let ((b (bounds-of-thing-at-point 'symbol))) | |||
(goto-char (car b)) | |||
(set-mark (cdr b))))) | |||
(defun mc--get-nice-sgml-context () | |||
(car | |||
(last | |||
(progn | |||
(when (looking-at "<") (forward-char 1)) | |||
(when (looking-back ">") (forward-char -1)) | |||
(sgml-get-context))))) | |||
(defun mc--on-tag-name-p () | |||
(let* ((context (save-excursion (mc--get-nice-sgml-context))) | |||
(tag-name-len (length (aref context 4))) | |||
(beg (aref context 2)) | |||
(end (+ beg tag-name-len (if (eq 'open (aref context 1)) 1 3)))) | |||
(and context | |||
(>= (point) beg) | |||
(<= (point) end)))) | |||
;;;###autoload | |||
(defun mc/add-cursor-on-click (event) | |||
"Add a cursor where you click." | |||
(interactive "e") | |||
(mouse-minibuffer-check event) | |||
;; Use event-end in case called from mouse-drag-region. | |||
;; If EVENT is a click, event-end and event-start give same value. | |||
(let ((position (event-end event))) | |||
(if (not (windowp (posn-window position))) | |||
(error "Position not in text area of window")) | |||
(select-window (posn-window position)) | |||
(if (numberp (posn-point position)) | |||
(save-excursion | |||
(goto-char (posn-point position)) | |||
(mc/create-fake-cursor-at-point))) | |||
(mc/maybe-multiple-cursors-mode))) | |||
;;;###autoload | |||
(defun mc/mark-sgml-tag-pair () | |||
"Mark the tag we're in and its pair for renaming." | |||
(interactive) | |||
(when (not (mc--inside-tag-p)) | |||
(error "Place point inside tag to rename.")) | |||
(let ((context (mc--get-nice-sgml-context))) | |||
(if (looking-at "</") | |||
(setq context (car (last (sgml-get-context))))) | |||
(goto-char (aref context 2)) | |||
(let* ((tag-name (aref context 4)) | |||
(num-chars (length tag-name)) | |||
(master-start (1+ (point))) | |||
(mirror-end (save-excursion | |||
(sgml-skip-tag-forward 1) | |||
(1- (point))))) | |||
(goto-char (- mirror-end num-chars)) | |||
(set-mark mirror-end) | |||
(mc/create-fake-cursor-at-point) | |||
(goto-char master-start) | |||
(set-mark (+ (point) num-chars)))) | |||
(mc/maybe-multiple-cursors-mode)) | |||
(defun mc--inside-tag-p () | |||
(save-excursion | |||
(not (null (sgml-get-context))))) | |||
(provide 'mc-mark-more) | |||
;;; mc-mark-more.el ends here |
@@ -1,22 +0,0 @@ | |||
;;; mc-mark-pop.el --- Pop cursors off of the mark stack | |||
(require 'multiple-cursors-core) | |||
;;;###autoload | |||
(defun mc/mark-pop () | |||
"Add a cursor at the current point, pop off mark ring and jump | |||
to the popped mark." | |||
(interactive) | |||
;; If the mark happens to be at the current point, just pop that one off. | |||
(while (eql (mark) (point)) | |||
(pop-mark)) | |||
(mc/create-fake-cursor-at-point) | |||
(exchange-point-and-mark) | |||
(pop-mark) | |||
(mc/maybe-multiple-cursors-mode)) | |||
;; A good key binding for this feature is perhaps "C-S-p" ('p' for pop). | |||
(provide 'mc-mark-pop) | |||
;;; mc-mark-pop.el ends here |
@@ -1,90 +0,0 @@ | |||
;;; mc-separate-operations.el - functions that work differently on each cursor | |||
;; Copyright (C) 2012 Magnar Sveen | |||
;; Author: Magnar Sveen <magnars@gmail.com> | |||
;; Keywords: editing cursors | |||
;; This program is free software; you can redistribute it and/or modify | |||
;; it under the terms of the GNU General Public License as published by | |||
;; the Free Software Foundation, either version 3 of the License, or | |||
;; (at your option) any later version. | |||
;; This program is distributed in the hope that it will be useful, | |||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
;; GNU General Public License for more details. | |||
;; You should have received a copy of the GNU General Public License | |||
;; along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
;;; Commentary: | |||
;; This file contains functions that work differently on each cursor, | |||
;; instead of treating all of them the same. | |||
;; Please see multiple-cursors.el for more commentary. | |||
;;; Code: | |||
(require 'multiple-cursors-core) | |||
;;;###autoload | |||
(defun mc/insert-numbers (arg) | |||
"Insert increasing numbers for each cursor, starting at 0 or ARG." | |||
(interactive "P") | |||
(setq mc--insert-numbers-number (or arg 0)) | |||
(mc/for-each-cursor-ordered | |||
(mc/execute-command-for-fake-cursor 'mc--insert-number-and-increase cursor))) | |||
(defvar mc--insert-numbers-number 0) | |||
(defun mc--insert-number-and-increase () | |||
(interactive) | |||
(insert (number-to-string mc--insert-numbers-number)) | |||
(setq mc--insert-numbers-number (1+ mc--insert-numbers-number))) | |||
(defun mc--ordered-region-strings () | |||
(let (strings) | |||
(save-excursion | |||
(mc/for-each-cursor-ordered | |||
(setq strings (cons (buffer-substring-no-properties | |||
(mc/cursor-beg cursor) | |||
(mc/cursor-end cursor)) strings)))) | |||
(nreverse strings))) | |||
(defvar mc--strings-to-replace nil) | |||
(defun mc--replace-region-strings-1 () | |||
(interactive) | |||
(delete-region (region-beginning) (region-end)) | |||
(save-excursion (insert (car mc--strings-to-replace))) | |||
(setq mc--strings-to-replace (cdr mc--strings-to-replace))) | |||
(defun mc--replace-region-strings () | |||
(mc/for-each-cursor-ordered | |||
(mc/execute-command-for-fake-cursor 'mc--replace-region-strings-1 cursor))) | |||
;;;###autoload | |||
(defun mc/reverse-regions () | |||
(interactive) | |||
(if (not multiple-cursors-mode) | |||
(progn | |||
(mc/mark-next-lines 1) | |||
(mc/reverse-regions) | |||
(multiple-cursors-mode 0)) | |||
(unless (use-region-p) | |||
(mc/execute-command-for-all-cursors 'mark-sexp)) | |||
(setq mc--strings-to-replace (nreverse (mc--ordered-region-strings))) | |||
(mc--replace-region-strings))) | |||
;;;###autoload | |||
(defun mc/sort-regions () | |||
(interactive) | |||
(unless (use-region-p) | |||
(mc/execute-command-for-all-cursors 'mark-sexp)) | |||
(setq mc--strings-to-replace (sort (mc--ordered-region-strings) 'string<)) | |||
(mc--replace-region-strings)) | |||
(provide 'mc-separate-operations) | |||
;;; mc-separate-operations.el ends here |