How to Copy to Clipboard in Vim
Copy to Clipboard in Vim
Why we need this
We copy words or lines, by useing a mouce or trackpad,
double click or triple click, selecting by our finger.
However using Vim, copying lines by mouce might contain
line numbers or line end charactors. It's annoying to
delete the extra char every paste.
Vim has a nice commands that copies lines or words.
`yy`: copies one line to `register`. `num yy`: copies the numbers of lines to `register`. `yw`: copies one word to `register`. `p`: paste from the `register`.
But this register
is different from clipboard
what we use copy and paste Control C & V
in the browser.
"*
: by MacOS
`"*yy`: copies one line to `clipboard`
In MacOS, adding "*
: to prefix enable to yank(copy) to
clipboard, which is different in Linux.
* Make sure your Vim can use clipboard.
If your Vim is not supporting Clipboard, you cannot type
"*
command.
- If not, install MacVim
"+
: by Linux
In Linux, "*
: do not use clipboard.
Clipboard read the "+
register.
Use "+
instead.
unnamed, unnamed plus
This "+
can also use in Mac.
Enable Clipboard by yy
"*
or "+
costs finger. It is far from default position.
if yy
reads clipboard, it saves our time a lot.
set clipboard=unnamed
to ~/.vimrc
. Very Very Very useful!!!!!
Struggle with Vim8.1 updating ~ seeking :terminal ~
Vim8.1での苦戦とその解決策 (:terminalを求めて)
vimとの出会い
MacではずっとVisual Stadio Codeを使っていたが、gitの運用中viが自動で起動することがあって、そこからvim (vi IMproved)に興味を持ち、メインのエディタにしてみようと思った。 Vimは完全なCUI editorであり、マウスを使う必要がほとんどないから、効率的にコードが書けて捗るらしい。
vimを使ってみよう!
そこで私が最近やっているJavaScriptの勉強をVimでやってみることにした。 主にconsole.logの結果をnodeでterminalにoutputしている。
これがしたいな!
必要なのは今はeditor画面とintegrated terminalが同じ画面にあることである。 vi sample.jsで開いた後 :wqをして, node sample.jsとするのでもいいが、やはり同じ画面にコードと実行結果は同居してほしい。
参考画像:VScode
そうだ聞いてみよう!
ゴリラ.vimという渋谷のDeNAで開かれたvimmerの集いで聞いたところ、それには' :terminal 'というコマンドが必要らしいが、vim8.0には入っていないらしい。 そこではvimにすごく詳しい人に直してもらったが、自分では何をしてもらったかわかっていなかったため、2台目の自宅のMacで同じ問題に挑戦してみた。
やったこと
homebrewでのupdate
そもそも参照される位置には入っていないerrorが出たため、installした。
$ brew install vim --with-override-system-vi
Error: invalid option: --with-override-system-vi
overrideに失敗しているのでbrew install vimをした。
Python3は
/usr/local/lib/python3.7/site-packages
Rubyは
export PATH="/usr/local/opt/ruby/bin:$PATH
になるとの記述が出た。VImに伴い。
でもPHP@7.1 は
/usr/local/opt/
にあるのがbrewでinstallしたのとvimでinstallされたのの違いかな?
For compilers to find ruby you may need to set: export LDFLAGS="-L/usr/local/opt/ruby/lib" export CPPFLAGS="-I/usr/local/opt/ruby/include"
vim8.1のinstallには成功したが、vim --versionをしてもvim8.0のままであった 当然 :terminal コマンドも使えないままだった。
場所の確認
which -a vim
で確認すると, usr/bin/vimが存在し、usr/bin/local/vimを遮っていることが判明。
この操作はPHPの環境構築でもやることになるのであった...
PATHの修正
.bash_profileにsource ~/.bashrc を追加し .bashrcを作成してexport PATH="/usr/local/bin:$PATH" を記述した。
refresh
source ~/.bash_profile で再読み込みするとvim8.1が読み込まれるようになった! :terminalも使えた!!!
注意点
:terminal で開いたのはvimのなかのterminalなので、また別のものを左右に表示したい場合はexitして開いたものを消さないとおかしくなります。 そうでなければ ctrl w wでJS fileとterminalをマウスなしで移動できるので超便利です!!Vim最高!!!
Special Thanks: cateye, Stan_Dma, stmtk, pepper_leaf
追記感想
Desktop, Laptopで二度環境構築をするのは時間の無駄に感じていたが、2台目に同じ操作をするときは手探りでコピペしてやるのではなく、ある程度どうなるかわかりながらできるので、二台環境構築するのはとても勉強になった。 またこの環境構築に手こずらなければMacOSの.bash_profileはもちろん、/usr/local以下のフォルダも見ることはなかったので低いレイヤのことが少しはわかって嬉しくなった。
add 2019.06.18
Exchanged Title ja to en.
Vim Plug-In 苦戦
経緯
- ES2015を勉強するのにnode.jsでterminalでjs fileを実行するのを覚えた
- それならvi 使えばterminalから動かないで実行できるし、なんかカッコいいし \ VScodeみたいにみやすくハイライトとかできるように.vimrc弄ってみるか!
結果
- ハイライトはできた。
しかしmolokaiを参照した時のErrorが消えない。
- copy をした時に行番号まで取り込んでしまう。
- ctrl nなどのMac key bindをした時に過去のコマンドを持ってきてしまい不快。
Referred
source code
Apple-no-Air:~ Apple$ vi .vimrc Error detected while processing /Users/Apple/.vimrc: line 55: E185: Cannot find color scheme 'molokai' Press ENTER or type command to continue
1 "#####表示設定#####↲
2 set number "行番号を表示する↲
3 set title "編集中のファイル名を表示↲
4 set showmatch "括弧入力時の対応する括弧を表示↲
5 syntax on "コードの色分け↲
6 ↲
7 "##Tab Settings"↲
8 set expandtab " タブ入力を複数の空白入力に置き換える↲
9 set tabstop=4 " 画面上でタブ文字が占める幅↲
10 set softtabstop=4 " 連続した空白に対してタブキーやバックスペースキーでカーソルが動く幅↲
11 set autoindent " 改行時に前の行のインデントを継続する↲
12 set smartindent " 改行時に前の行の構文をチェックし次の行のインデントを増減する↲
13 set shiftwidth=4 " smartindentで増減する幅↲
14 ↲
15 "List setting"↲
16 set list↲
17 set listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:%↲
18 set virtualedit=block "文字のないところにカーソル移動できるようにする"↲
19 set whichwrap=b,s,[,],<,>↲
20 set backspace=indent,eol,start↲
21 set wildmenu↲
22 ↲
23 ↲
24 "#####検索設定#####↲
25 set ignorecase "大文字/小文字の区別なく検索する↲
26 set smartcase "検索文字列に大文字が含まれている場合は区別して検索する↲
27 set wrapscan "検索時に最後まで行ったら最初に戻↲
28 ↲
29 "# vim plug in settings↲
30 if has('vim_starting')↲
31 " 初回起動時のみruntimepathにNeoBundleのパスを指定する↲
32 set runtimepath+=~/.vim/bundle/neobundle.vim/↲
33 ↲
34 " NeoBundleが未インストールであればgit cloneする・・・・・・①↲
35 if !isdirectory(expand("~/.vim/bundle/neobundle.vim/"))↲
36 echo "install NeoBundle..."↲
NORMAL .vimrc unix | utf-8 | vim 1% 1:1
".vimrc" 82L, 3373C
Add
映画, 'POLAR' 感想
Netflix Original Movie
POLAR
を観ました!
久しぶりに1h54minもの映画を観た。集中力続かないから昼と夜で二回に分けてだったけど。だがその分、映画は「追体験」を得られるようにできているなぁ。
もともとこの2019にできた映画は知らなかったが、Netflixをデスクトップで開いた時に出てきた画面上部の自動再生のPVでt
見入ってしまってそのまま観ました。 撮影も自然を壮大に映していて素晴らしかった。
とりあえず主人公の50代の男の顔がいいし観ててしあわせでした.....
組織の電話担当も格好良かった、私も 'Speak.'って言って電話出ようかな???
ストーリーは深くは言いませんが、テンポが良くて先が読めなくて、終わり方も心に染みました。ああ、そうなるのか..... と。
相当観て良かったと思える作品なのでぜひ皆さんも POLAR, みてください。
----END----------------
Permission to 'newUserName/repsitory.git denied to oldUserNameの解消法
Permission to kaede0902/KAEDE_GAMES.git denied to KaedeAPK. fatal: unable to access 'https://github.com/kaede0902/KAEDE_GAMES.git/': The requested URL returned error: 403
のエラーメッセージが出てしまった。pushじに 古いアカウントじゃなくて新しいアカウントでpushするのをわからせる、コンピュータわからせ棒(line)として viで.git / configの [remote "origin"] url = https://github.com/kaede0902/KAEDE_GAMES.git を url = https://kaede0902@github.com/kaede0902/KAEDE_GAMES.git にすればpushできるようになる
以上、備忘録
REF
Basic Auth Basic認証 - Wikipedia
C_language and Header_19/01/25
C言語とheader, MacOS
Links
//#include <malloc.h> mujiryouhin.hatenadiary.jp
GithubのDocument, 意味は不明 github.com
Pointerの参照の書き方, 本でおかしかった部分 警告やエラーについて教えてください。 - Qiita
Situation
- Mid or low company向けのMicro serviceのソフトを作るアルバイト
- 12/15くらいからで1.5monthめ。
今日はChap04, Array and Pointerをやっていた
Problem(PB)
//#include <malloc.h>を本の通りにheaderに書いていたら
#include <malloc.h> ^~~~~~~~~~ 1 error generated. ``` と出た。 これ自体はググったらMacOSではmalloc()はstdlib.hに入っているし、malloc.hはサポートされていないと出た. それよりも問題は社長にこう言われてしまったことだ。 ''headerの動きや.hフォルダの位置がわかっていないのに書くのはプログラマとしておかしい" "プログラマが理解できていないものは動きが保証できるとは言えないので売れないぞ" "それは自分で選ぶライブラリについても同じだぞ" ....正直headerなんて関数に応じて呼び出せばいいだけだと思っていた. そこから理解するのはレイヤが低すぎてキリがないと思う。 動くから書いている、ではダメなのであろうか。だがそれはキリがないのではないか コンピュータを理解してプログラムを書くのなんて、実践できている人間がいるのか MacOSを使っている嫌味のように感じたが、同じ関数なのに呼び出している標準Libraryの場所が違ったり、そのlibraryのファイル構造を詳しく伝えられないと、Win環境で動作保証がされないことになるのだろうか。 そもそもコンパイルしたものをソフトとして(.exeか?)提出するのだから、ソースをwinで保証する必要があるのか、headerの動作を詳しく理解していないとどう信頼性のなさに繋がるのか、それがどう「信頼性の無さ」に繋がるのだろうか。 具体的に言って欲しいものだ.... その結果, 「MacOSは禁止だ、巷世間一般で使われているwinで開発しなさい。」 とか言われたらかなり効率が落ちてフラストレーションがたまるが。 「わかっていないのに作るな」と言われるのはかなりストレスが溜まる。見返したいものだよ... <EOF>
Git usage
Gitの使い方, 差分管理など
git add, commit, push,
自明なので省略
git log
Terminalで
commit: 123456abcdef...
author: kaede0902hoge@mail.com
Date: Thu May 21...
commit message
のようにcommit logを一覧にできる
コミットメッセージが適当だったら意味がないがな
git status
local(自分のPCのストレージ)でコードを変更したりしたら
remoteにpushする前に変更点を洗い出したい時には
' git status' コマンドで変更 file がどのくらいあるか見ることができる
fetch, diff
fetch, diff, でremoteの変化を見れるらしい,未検証
git diff
各自のgit repositoryのなかのpushしてremoteに送っていない 差分が表示される??要検証
hogehoge
hugahug
と表示される
github in browser
結局
githubのcommitのページに飛んで差分確認するのが一番楽
checkout
branchを分ける際はcheckoutコマンドを使用する
このようにGUIから作成
それをterminalからいじるためには
「git checkout ブランチ名」で、ワークツリーの内容を指定したブランチに切り替えることができます。
RYOs-MBP:07 kaede$ git checkout 20200702-daily-reoprt error: pathspec '20200702-daily-reoprt' did not match any file(s) known to git
ダメそう....
branchリストを出してみると
RYOs-MBP:07 kaede$ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/master
になるので,GUIで作ったはずのbranchが反映されない.
作るのはこっちみたいだ
git checkout -bで作成
git checkout -b hoge Switched to a new branch 'hoge'
git branch -a * hoge master remotes/origin/HEAD -> origin/master remotes/origin/master
できてるしそこにいる!
これでpushしたのをwebのgithubからPRすれば良し!