Skip to content

Instantly share code, notes, and snippets.


View GitHub Profile
View caller_locations-with-columns.patch
$ d
diff --git a/vm_backtrace.c b/vm_backtrace.c
index bb01983a7c..de7b961174 100644
--- a/vm_backtrace.c
+++ b/vm_backtrace.c
@@ -47,6 +47,28 @@ calc_lineno(const rb_iseq_t *iseq, const VALUE *pc)
return rb_iseq_line_no(iseq, pos);
+inline static int

Play with local vars

While waiting for my talk, guess what does it output without actually running it.

View put_in.rb
def put_in_f(hash, keys, value)
if keys.empty?
car, cdr = [keys[0], keys[1..]]
hash.merge(car => put_in_f(hash[car], cdr, value))
def extract(binding, ast)
View wordcount.vim
let s:S = vital#vital#import('Data.String')
let s:L = vital#vital#import('Data.List')
function! s:count_words(text) abort
let F = { memo, x -> has_key(memo, x)
\ ? extend(memo, {x: memo[x] + 1})
\ : extend(memo, {x: 1})}
return s:L.foldl(F, {}, s:S.scan(a:text, '\w\+'))
View asakusa.rb
def give_ujihisa_money(users, value)
# users[:ujihisa][:money] = 24
update_in2(-> { users[:ujihisa][:money] }, 24)
# put_in(users[:ujihisa][:money], 24)
# dig <-> bury
def update_in2(f, value)
pp RubyVM::InstructionSequence.of(f).to_a
View wip.rb
#!ruby -v
PER: ['Gunslinger', 'Shotgun Messiah', 'Automatic Weapons', 'Dead Eye', 'Archery', 'Explosive Weapons', 'Boom! Headshot!', 'Run And Gun', 'Lucky Looter', 'Salvage Operations'],
STR: ['Wrecking Crew', 'Sexual Tyrannosaurus', 'Flurry of Blows', 'Deep Cuts', 'Stay Down!', 'Heavy Metal', 'Skull Crusher', 'Miner 69\'er', 'Pack Mule', 'Mother Lode'],
FRT: ['Heavy Armor', 'The Huntsman', 'Intrinsic Immunity', 'Well Insulated', 'Living Off The Land', 'Pain Tolerance', 'Healing Factor', 'Fully Hydrated', 'Slow Metabolism', 'Self Medicated'],
AGI: ['Rule 1: Cardio', 'Light Armor', 'Charging Bull', 'Parkour', 'Olympic Swimmer', 'Ninja Movement', 'Hidden Strike', 'From Shadows'],
INT: ['Better Barter', 'The Daring Adventurer', 'Charismatic Nature', 'Hammer & Forge', 'Grease Monkey', 'Advanced Engineering', 'Yeah, Science!', 'Physician', 'Master Chef']
View version
VIM - Vi IMproved 8.1 (2018 May 18, compiled Dec 8 2018 11:23:48)
Included patches: 1-570
Compiled by Arch Linux
Huge version with GTK3 GUI. Features included (+) or not (-):
+acl +clientserver +diff +folding +libcall +mouse_gpm +packages +ruby/dyn +termguicolors +visual +xsmp_interact
+arabic +clipboard +digraphs -footer +linebreak -mouse_jsbterm +path_extra +scrollbind +terminal +visualextra +xterm_clipboard
+autocmd +cmdline_compl +dnd +fork() +lispindent +mouse_netterm +perl/dyn +signs +terminfo +viminfo -xterm_save
+autochdir +cmdline_hist -ebcdic +gettext +listcmds +mouse_sgr +persistent_undo +smartindent +termresponse +vreplace
-autoservername +cmdline_info +emacs_tags
View log_py3_deoplete
2019-01-03 16:20:44,037 [DEBUG @] 22202 - sent [0, 1, b'vim_get_api_info', ()]
2019-01-03 16:20:44,038 [DEBUG @] 22202 - Sending 'b'\x94\x00\x01\xb0vim_get_api_info\x90''
2019-01-03 16:20:44,038 [DEBUG @] 22202 - Entering event loop
2019-01-03 16:20:44,042 [DEBUG @] 22202 - waiting for message...
2019-01-03 16:20:44,042 [DEBUG @] 22202 - received message: [1, 1, None, [1, {b'version': {b'major': 0, b'api_level': 1, b'api_prerelease': False, b'patch': 7, b'api_compatible': 0, b'minor': 1}, b'types': {b'Window': {b'id': 1, b'prefix': b'nvim_win_'}, b'Tabpage': {b'id': 2, b'prefix': b'nvim_tabpage_'}, b'Buffer': {b'id': 0, b'prefix': b'nvim_buf_'}}, b'functions': [{b'method': True, b'name': b'nvim_buf_line_count', b'return_type': b'Integer', b'parameters': [[b'Buffer', b'buffer']], b'since': 1}, {b'method': False, b'deprecated_since': 1, b'name': b'buffer_get_line', b'return_type': b'String', b'
  • Start,End,Dur.,Content,Speaker,Language,Interp.,Misc.

  • 09:30,10:00,00:30,Reception,,,no,

  • 10:00,10:10,00:10,Opening,mopp,English,yes,

  • 10:10,11:00,00:50,Keynote - What is the next feature?,mattn,Japanese,yes,

  • 11:00,11:10,00:10,Short break,,,no,

  • 11:10,12:10,01:00,Keynote - Vim: From hjkl to a platform for plugins,Bram Moolenaar,English,yes,"Horland, Swiss"

  • 12:10,13:10,01:00,Lunch break,,,no,

  • 13:10,13:40,00:30,Migrating plugins to standard features,daisuzu,Japanese,yes,

    Although it may not be well known, Vim has a lot of useful standard features and many people use them from the plugin, but they can also be used directly.

View break-sin_refinements.rb
require 'sin_refinements'
module Ext
refine Integer do
def asdjflk
"ujihisa #{self}"
You can’t perform that action at this time.