summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--doc/ranger.17
-rw-r--r--doc/ranger.pod6
-rw-r--r--ranger/config/commands.py12
-rw-r--r--ranger/config/rc.conf2
-rw-r--r--ranger/config/rifle.conf11
-rw-r--r--ranger/data/mime.types22
6 files changed, 37 insertions, 23 deletions
diff --git a/doc/ranger.1 b/doc/ranger.1
index 7f5be704..49339bf2 100644
--- a/doc/ranger.1
+++ b/doc/ranger.1
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "RANGER 1"
-.TH RANGER 1 "ranger-1.6.1" "12/11/2014" "ranger manual"
+.TH RANGER 1 "ranger-1.6.1" "01/01/2015" "ranger manual"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -834,6 +834,7 @@ ranger.  For your convenience, this is a list of the \*(L"public\*(R" commands i
 \& quit
 \& quit!
 \& relink newpath
+\& rename_append
 \& rename newname
 \& save_copy_buffer
 \& scout [\-FLAGS] pattern
@@ -1057,6 +1058,10 @@ it by typing `` or '' the next time you start ranger.
 .IX Item "relink newpath"
 Change the link destination of the current symlink file to <newpath>. First
 <tab> will load the original link.
+.IP "rename_append" 2
+.IX Item "rename_append"
+Opens the console with \*(L":rename <current file>\*(R" with the cursor automatically
+placed before the file extension
 .IP "rename \fInewname\fR" 2
 .IX Item "rename newname"
 Rename the current file.  If a file with that name already exists, the renaming
diff --git a/doc/ranger.pod b/doc/ranger.pod
index ee20ef9f..279e44fd 100644
--- a/doc/ranger.pod
+++ b/doc/ranger.pod
@@ -851,6 +851,7 @@ ranger.  For your convenience, this is a list of the "public" commands including
  quit
  quit!
  relink newpath
+ rename_append
  rename newname
  save_copy_buffer
  scout [-FLAGS] pattern
@@ -1112,6 +1113,11 @@ it by typing `` or '' the next time you start ranger.
 Change the link destination of the current symlink file to <newpath>. First
 <tab> will load the original link.
 
+=item rename_append
+
+Opens the console with ":rename <current file>" with the cursor automatically
+placed before the file extension
+
 =item rename I<newname>
 
 Rename the current file.  If a file with that name already exists, the renaming
diff --git a/ranger/config/commands.py b/ranger/config/commands.py
index c496f71e..a8813de2 100644
--- a/ranger/config/commands.py
+++ b/ranger/config/commands.py
@@ -722,18 +722,18 @@ class rename(Command):
     def tab(self):
         return self._tab_directory_content()
 
-class renameConsole(Command):
-    """:renameConsole
+class rename_append(Command):
+    """:rename_append
 
     Creates an open_console for the rename command, automatically placing the cursor before the file extension.
     """
 
     def execute(self):
-        if "." in self.fm.thisfile.basename:
-            offset = 6 + len(self.fm.thisfile.basename) - self.fm.thisfile.basename[::-1].index('.')
-            self.fm.open_console('rename ' + self.fm.thisfile.basename, position=offset)
+        cf = self.fm.thisfile
+        if cf.basename.find('.') != 0 and cf.basename.rfind('.') != -1 and not cf.is_directory:
+            self.fm.open_console('rename ' + cf.basename, position=(7 + cf.basename.rfind('.')))
         else:
-            self.fm.open_console('rename ' + self.fm.thisfile.basename)
+            self.fm.open_console('rename ' + cf.basename)
 
 class chmod(Command):
     """:chmod <octal number>
diff --git a/ranger/config/rc.conf b/ranger/config/rc.conf
index 12fd2a32..4c8fd799 100644
--- a/ranger/config/rc.conf
+++ b/ranger/config/rc.conf
@@ -325,7 +325,7 @@ map yn shell -f echo -n %f    | xsel -i; xsel -o | xsel -i -b
 map =  chmod
 
 map cw console rename 
-map a  renameConsole
+map a  rename_append
 map A  eval fm.open_console('rename ' + fm.thisfile.basename)
 map I  eval fm.open_console('rename ' + fm.thisfile.basename, position=7)
 
diff --git a/ranger/config/rifle.conf b/ranger/config/rifle.conf
index 4776cdf9..ef3a5b63 100644
--- a/ranger/config/rifle.conf
+++ b/ranger/config/rifle.conf
@@ -82,8 +82,8 @@ ext x?html?, has w3m,             terminal = w3m "$@"
 # Define the "editor" for text files as first action
 mime ^text,  label editor = $EDITOR -- "$@"
 mime ^text,  label pager  = "$PAGER" -- "$@"
-!mime ^text, label editor, ext xml|csv|tex|py|pl|rb|sh|php = $EDITOR -- "$@"
-!mime ^text, label pager,  ext xml|csv|tex|py|pl|rb|sh|php = "$PAGER" -- "$@"
+!mime ^text, label editor, ext xml|csv|tex|py|pl|rb|js|sh|php = $EDITOR -- "$@"
+!mime ^text, label pager,  ext xml|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@"
 
 ext 1                         = man "$1"
 ext s[wmf]c, has zsnes, X     = zsnes "$1"
@@ -98,6 +98,7 @@ name ^[mM]akefile$            = make
 ext py  = python -- "$1"
 ext pl  = perl -- "$1"
 ext rb  = ruby -- "$1"
+ext js  = node -- "$1"
 ext sh  = sh -- "$1"
 ext php = php -- "$1"
 
@@ -188,6 +189,6 @@ label wallpaper, number 13, mime ^image, X = feh --bg-center "$1"
 label wallpaper, number 14, mime ^image, X = feh --bg-fill "$1"
 
 # Define the editor for non-text files + pager as last action
-              !mime ^text, !ext xml|csv|tex|py|pl|rb|sh|php  = ask
-label editor, !mime ^text, !ext xml|csv|tex|py|pl|rb|sh|php  = $EDITOR -- "$@"
-label pager,  !mime ^text, !ext xml|csv|tex|py|pl|rb|sh|php  = "$PAGER" -- "$@"
+              !mime ^text, !ext xml|csv|tex|py|pl|rb|js|sh|php  = ask
+label editor, !mime ^text, !ext xml|csv|tex|py|pl|rb|js|sh|php  = $EDITOR -- "$@"
+label pager,  !mime ^text, !ext xml|csv|tex|py|pl|rb|js|sh|php  = "$PAGER" -- "$@"
diff --git a/ranger/data/mime.types b/ranger/data/mime.types
index 2adc2e99..b3c3e8dc 100644
--- a/ranger/data/mime.types
+++ b/ranger/data/mime.types
@@ -10,15 +10,17 @@
 #
 ###############################################################################
 
-audio/flac       flac
-audio/musepack   mpc mpp mp+
-audio/ogg        oga ogg spx
-audio/wavpack    wv wvc
+audio/flac              flac
+audio/musepack          mpc mpp mp+
+audio/ogg               oga ogg spx
+audio/wavpack           wv wvc
 
-video/mkv        mkv
-video/webm       webm
-video/flash      flv
-video/ogg        ogv ogm
-video/divx       div divx
+video/mkv               mkv
+video/webm              webm
+video/flash             flv
+video/ogg               ogv ogm
+video/divx              div divx
+
+text/x-ruby             rb
+application/javascript  js
 
-text/x-ruby      rb