aboutsummaryrefslogtreecommitdiff
path: root/entries/joeyshi12/vimscript/fib.vim
diff options
context:
space:
mode:
Diffstat (limited to 'entries/joeyshi12/vimscript/fib.vim')
-rw-r--r--entries/joeyshi12/vimscript/fib.vim28
1 files changed, 28 insertions, 0 deletions
diff --git a/entries/joeyshi12/vimscript/fib.vim b/entries/joeyshi12/vimscript/fib.vim
new file mode 100644
index 0000000..b385049
--- /dev/null
+++ b/entries/joeyshi12/vimscript/fib.vim
@@ -0,0 +1,28 @@
+" Add me to your .vimrc :]
+
+function! Fib(n)
+ if a:n == 0
+ return "0"
+ elseif a:n == 1
+ return "0,1"
+ endif
+ let sequence = "0,1"
+ let prev = 0
+ let curr = 1
+ let iter = 2
+ while iter <= a:n
+ let curr = prev + curr
+ let prev = curr - prev
+ let sequence .= "," . curr
+ let iter += 1
+ endwhile
+ return sequence
+endfunction
+
+function! AppendFib(n)
+ execute "normal! i" . Fib(a:n) . "\<Esc>"
+endfunction
+
+" Map AppendFib to \fib
+:command! -nargs=1 AppendFib :call AppendFib(<q-args>)
+nnoremap <Leader>fib :AppendFib<Space>