Skip to content

Instantly share code, notes, and snippets.

@koturn
koturn / .vsvimrc
Created June 23, 2019 06:15
Visual Studioの拡張VSVIMの設定ファイル
set clipboard=unnamed
set hlsearch
set incsearch
set virtualedit=block
set whichwrap=b,s,h,l,<,>,[,]
set ignorecase smartcase
set scrolloff=5
nnoremap c "_c
nnoremap x "_x
nnoremap n nzz
@koturn
koturn / CMakeLists.txt
Created March 9, 2019 16:36
CMakeLists.txtのテンプレート
cmake_minimum_required(VERSION 3.1)
project(CMakeProject CXX)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
@koturn
koturn / vimrc_part.vim
Created October 4, 2018 18:36
defx.nvimのdein.vim用設定記述
" dependsはVim用なので,neovimでは不要
call dein#add('Shougo/defx.nvim', {
\ 'depends': ['nvim-yarp', 'vim-hug-neovim-rpc'],
\ 'on_cmd': 'Defx',
\ 'on_func': 'defx'
\})
if dein#tap('defx.nvim') " {{{
@koturn
koturn / tab_info.vim
Last active February 11, 2018 06:08
全タブのバッファ情報等を表示
function! s:create_winid2bufnr_dict() abort " {{{
let winid2bufnr_dict = {}
for bnr in filter(range(1, bufnr('$')), 'v:val')
for wid in win_findbuf(bnr)
let winid2bufnr_dict[wid] = bnr
endfor
endfor
return winid2bufnr_dict
endfunction " }}}
@koturn
koturn / buf_open.vim
Last active February 10, 2018 10:45
既に開いているバッファに移動するコマンド定義
if exists('*win_gotoid')
function! s:buf_open_existing(bname) abort " {{{
let bnr = bufnr(a:bname)
if bnr == -1
echoerr 'Buffer not found:' a:bname
return
endif
let wids = win_findbuf(bnr)
if empty(wids)
new
@koturn
koturn / term_open.vim
Created February 10, 2018 09:43
既に開いているターミナルに移動するコマンドの定義
" 参考: http://secret-garden.hatenablog.com/entry/2017/11/14/113127
" 既に開いているターミナルを開く(バッファに移動)
" 開いているターミナルが無い場合は新規に起動
if has('terminal')
function! s:complete_term_bufname(arglead, cmdline, cursorpos) abort " {{{
let arglead = tolower(a:arglead)
return filter(map(term_list(), 'bufname(v:val)'), '!stridx(tolower(v:val), arglead)')
endfunction " }}}
function! s:term_open_existing(...) abort " {{{
@koturn
koturn / showhint.vim
Created February 10, 2018 02:04
Ctrl-Xの補完,マーク位置,レジスタ内容のヒントを表示するキーマッピング
if &compatible
set nocompatible
endif
function! s:hint_n_m() abort " {{{
redir => str
:marks
redir END
echo str
if &compatible
set nocompatible
endif
let s:compl_key_dict = {
\ char2nr("\<C-l>"): "\<C-x>\<C-l>",
\ char2nr("\<C-n>"): "\<C-x>\<C-n>",
\ char2nr("\<C-p>"): "\<C-x>\<C-p>",
\ char2nr("\<C-k>"): "\<C-x>\<C-k>",
\ char2nr("\<C-t>"): "\<C-x>\<C-t>",
\ char2nr("\<C-i>"): "\<C-x>\<C-i>",
@koturn
koturn / hello.c
Last active April 24, 2017 11:40
Hello World on Windows x64
#include <stdio.h>
#if defined(_MSC_VER)
# pragma section(".text", read, execute)
__declspec(allocate(".text"))
#elif defined(__GNUC__)
__attribute__((section(".text")))
#endif
const char code[] =
// push %rbp
@koturn
koturn / hello.c
Created April 6, 2017 23:36
x64なHello World
#include <unistd.h>
#include <sys/mman.h>
static const unsigned char code[] =
// mov $0x01,%rax
"\x48\xc7\xc0\x01\x00\x00\x00"
// mov $0x0d,%edx
"\xba\x0d\x00\x00\x00"
// mov $0x01,%edi
"\xbf\x01\x00\x00\x00"