Added pryrc and awesome_print configuration, updated README

This commit is contained in:
yan 2011-12-06 00:40:44 -08:00
parent 0d42f4dd9d
commit 3697ebd799
3 changed files with 193 additions and 3 deletions

View File

@ -43,6 +43,19 @@ feel free to edit them:
ae # alias edit ae # alias edit
ar # alias reload ar # alias reload
Setup for Pry
---
Pry (http://pry.github.com/) offers a much better out of the box IRB experience
with colors, tab completion, and lots of other tricks. You should:
gem install pry
gem install awesome_print
ln -s ~/.dotfiles/irb/pryrc ~/.pryrc
ln -s ~/.dotfiles/irb/aprc ~/.aprc
The pryrc included here also offers some nice commands like 'clear', 'sql', and etc
Look at the pryrc to see a list of commands or just type 'help' from pry.
Setup for Vim Setup for Vim
--- ---
To use the vim files: To use the vim files:
@ -76,6 +89,8 @@ These are things I use every day to be insanely productive. Hope you like em.
* Apple-k and Apple-K to type underscores and dashes, since they are so common in code but so far away from home row * Apple-k and Apple-K to type underscores and dashes, since they are so common in code but so far away from home row
* yw - remapped to yaw, meaning yanking a word will yank the entire word no matter where your cursor is * yw - remapped to yaw, meaning yanking a word will yank the entire word no matter where your cursor is
* W - write a file (instead of :w, saving you keystrokes for the most common vim operation) * W - write a file (instead of :w, saving you keystrokes for the most common vim operation)
* gcc (comment a line) via tComment, and gcp custom alias to comment a paragraph
* Cc - (Current command) copies the command under your cursor and executes it in vim. Great for testing single line changes to vimrc.
Setup for Git Setup for Git
--- ---
@ -117,10 +132,11 @@ I can't take credit for all of this. The vim files are a combination of
work by tpope, scrooloose, and many hours of scouring blogs, vimscripts, work by tpope, scrooloose, and many hours of scouring blogs, vimscripts,
and other places for the cream of the crop of vim and bash awesomeness. and other places for the cream of the crop of vim and bash awesomeness.
TODO COMING SOON
=== ===
I started migrating to tpope's pathogen, but only a few plugins are * Full migration to tpope's pathogen for all plugins
currently under vim/bundles. * Better isolation of customizations in smaller chunks
* Automatic setup script to symlink all dotfiles, or just some selectively
For more tips and tricks For more tips and tricks
=== ===

24
irb/aprc Normal file
View File

@ -0,0 +1,24 @@
AwesomePrint.defaults = {
:indent => 2,
:sort_keys => true,
:color => {
:args => :greenish,
:array => :pale,
:bigdecimal => :blue,
:class => :yellow,
:date => :greenish,
:falseclass => :red,
:fixnum => :blue,
:float => :blue,
:hash => :pale,
:keyword => :cyan,
:method => :purpleish,
:nilclass => :red,
:string => :yellowish,
:struct => :pale,
:symbol => :cyanish,
:time => :greenish,
:trueclass => :green,
:variable => :cyanish
}
}

150
irb/pryrc Normal file
View File

@ -0,0 +1,150 @@
# === EDITOR ===
Pry.editor = 'vi'
# === CUSTOM PROMPT ===
Pry.prompt = [proc { |obj, nest_level, _| "#{RUBY_VERSION} (#{obj}):#{nest_level} > " }, proc { |obj, nest_level, _| "#{RUBY_VERSION} (#{obj}):#{nest_level} * " }]
# == PLUGINS ===
# awesome_print gem: great syntax colorized printing
# look at ~/.aprc for more settings for awesome_print
begin
require 'awesome_print'
Pry.config.print = proc { |output, value| output.puts value.ai }
rescue LoadError => err
puts "gem install awesome_print # <-- highly recommended"
end
# === CUSTOM COMMANDS ===
# from: https://gist.github.com/1297510
default_command_set = Pry::CommandSet.new do
command "copy", "Copy argument to the clip-board" do |str|
IO.popen('pbcopy', 'w') { |f| f << str.to_s }
end
command "clear" do
system 'clear'
if ENV['RAILS_ENV']
output.puts "Rails Environment: " + ENV['RAILS_ENV']
end
end
command "sql", "Send sql over AR." do |query|
if ENV['RAILS_ENV'] || defined?(Rails)
pp ActiveRecord::Base.connection.select_all(query)
else
pp "No rails env defined"
end
end
command "caller_method" do |depth|
depth = depth.to_i || 1
if /^(.+?):(\d+)(?::in `(.*)')?/ =~ caller(depth+1).first
file = Regexp.last_match[1]
line = Regexp.last_match[2].to_i
method = Regexp.last_match[3]
output.puts [file, line, method]
end
end
end
Pry.config.commands.import default_command_set
# === CONVENIENCE METHODS ===
# Stolen from https://gist.github.com/807492
# Use Array.toy or Hash.toy to get an array or hash to play with
class Array
def self.toy(n=10, &block)
block_given? ? Array.new(n,&block) : Array.new(n) {|i| i+1}
end
end
class Hash
def self.toy(n=10)
Hash[Array.toy(n).zip(Array.toy(n){|c| (96+(c+1)).chr})]
end
end
# === COLOR CUSTOMIZATION ===
# Everything below this line is for customizing colors, you have to use the ugly
# color codes, but such is life.
CodeRay.scan("example", :ruby).term # just to load necessary files
# Token colors pulled from: https://github.com/rubychan/coderay/blob/master/lib/coderay/encoders/terminal.rb
TERM_TOKEN_COLORS = {
:attribute_name => '33',
:attribute_value => '31',
:binary => '1;35',
:char => {
:self => '36', :delimiter => '34'
},
:class => '1;35',
:class_variable => '36',
:color => '32',
:comment => '37',
:complex => '34',
:constant => ['34', '4'],
:decoration => '35',
:definition => '1;32',
:directive => ['32', '4'],
:doc => '46',
:doctype => '1;30',
:doc_string => ['31', '4'],
:entity => '33',
:error => ['1;33', '41'],
:exception => '1;31',
:float => '1;35',
:function => '1;34',
:global_variable => '42',
:hex => '1;36',
:include => '33',
:integer => '1;34',
:key => '35',
:label => '1;15',
:local_variable => '33',
:octal => '1;35',
:operator_name => '1;29',
:predefined_constant => '1;36',
:predefined_type => '1;30',
:predefined => ['4', '1;34'],
:preprocessor => '36',
:pseudo_class => '34',
:regexp => {
:self => '31',
:content => '31',
:delimiter => '1;29',
:modifier => '35',
:function => '1;29'
},
:reserved => '1;31',
:shell => {
:self => '42',
:content => '1;29',
:delimiter => '37',
},
:string => {
:self => '36',
:modifier => '1;32',
:escape => '1;36',
:delimiter => '1;32',
},
:symbol => '1;31',
:tag => '34',
:type => '1;34',
:value => '36',
:variable => '34',
:insert => '42',
:delete => '41',
:change => '44',
:head => '45'
}
module CodeRay
module Encoders
class Term < Encoder
# override old colors
TERM_TOKEN_COLORS.each_pair do |key, value|
TOKEN_COLORS[key] = value
end
end
end
end