mecobalamin’s diary

人間万事塞翁が馬

https://help.hatenablog.com/entry/developer-option

コードにシンタックスハイライト

コードに色付してPowerPointに貼り付けたい。
リッチテキスト形式であれば
シンタックスハイライトをつけたまま
貼り付けられるそうだ。
Keynote(Mac版パワポも)にソースコードを貼る - Qiita

普段使っているエディタがAtomなので
copy-as-rtfをインストール
copy-as-rtf

しかし・・・
シェルスクリプトではうまくコピーできない。

Package error (copy-as-rtf)
Error calling `pygmentize`: Error: no lexer for alias 'shell script' found

がでる。
解決法があったのだが、理解できてないので修正できなかった。
Error calling `pygmentize`: Error: no lexer for alias 'typescript' found · Issue #30 · lucasmazza/copy-as-rtf · GitHub

Atomでコードファイルの種類をpythonとかRに変えてしまえば
シンタックスハイライトがついたままコピーできて
PowerPointに貼り付けられたのでとりあえずこれで。

Pythonのpygmentsを使っているらしいのだが、
これを使うとcat/lessコマンドでもハイライトを付けて
表示できるらしい。

cat, less コマンドの表示を Syntax Highlight させる - xykのブログ
あとで試す。

6 March 2019追記
windows + atom + copy-as-rtfでは
alt + rでatomからコードをコピー
ctrl + vでPowerPointに色付きで貼り付け

tmuxでターミナルを分割する

ターミナルをいくつか立ち上げてると
タブもいいんだけど画面が分割できたらべんりだなーって
思っていたらtmuxってのがあった
ターミナルマルチプレクサ tmux をカスタマイズする - Qiita
tmuxのすすめ - catatsuy's Blog


ペイン間の移動もキーボードからなんだけど、
マウスでできる方法もあった
tmux v2.1からmouse関連の設定が変わった - Qiita
Linux - WSL環境上のtmuxにてマウスホイールスクロールが出来ない|teratail
bash on windowsってすごーい!powerlineとTmuxを駆使してMacのターミナルっぽくする(Tera Termも卒業する) - Qiita

いろいろ写させてもらって
結果がこれ
.tmux.conf

# デフォルトのシェルを設定する
set-option -g default-shell /bin/bash
set-option -g default-command /bin/bash

# ウィンドウのインデックスを1から始める
set -g base-index 1

# ペインのインデックスを1から始める
setw -g pane-base-index 1

# 設定ファイルをリロードする
bind r source-file ~/.tmux.conf \; display "Reloaded!"

# マウスを使用する
set -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"

# 256色端末を使用する
set -g default-terminal "screen-256color"

# ステータスバーの色を設定する
set -g status-fg white
set -g status-bg black

# ウィンドウリストの色を設定する
setw -g window-status-fg cyan
setw -g window-status-bg default
setw -g window-status-attr dim
# アクティブなウィンドウを目立たせる
setw -g window-status-current-fg white
setw -g window-status-current-bg red
setw -g window-status-current-attr bright

# ペインボーダーの色を設定する
set -g pane-border-fg green
set -g pane-border-bg black
# アクティブなペインを目立たせる
set -g pane-active-border-fg white
set -g pane-active-border-bg yellow

# コマンドラインの色を設定する
set -g message-fg white
set -g message-bg black
set -g message-attr bright

# ステータスバーを設定する
## 左パネルを設定する
set -g status-left-length 40
set -g status-left "#[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
## 右パネルを設定する
set -g status-right "#[fg=cyan][%Y-%m-%d(%a) %H:%M]"
## リフレッシュの間隔を設定する(デフォルト 15秒)
set -g status-interval 60
## ウィンドウリストの位置を中心寄せにする
set -g status-justify centre
## ヴィジュアルノーティフィケーションを有効にする
setw -g monitor-activity on
set -g visual-activity on
## ステータスバーを上部に表示する
set -g status-position top

マウス操作はtmuxのバージョンによって設定が変わる

コピーはshift+右クリック
vim 有効 clipboard linux - パテで実行中のtmuxからwindowsクリップボードにコピーする方法 - CODE Q&A 問題解決

tmuxのチートシート
tmuxチートシート - Qiita

VcXsrvの自動起動


windowsを起動するときにVcXsrvも起動したい

実行ファイルにオプションを付けたショートカットを
スタートアップフォルダに保存しとけばいいっぽいんだけど
windows起動のたびに設定画面が出てきて若干めんどい

http://www.straightrunning.com/XmingNotes/IDH_FINISH.htm
コンフィグファイルを指定して起動もできるらしい

xlaunchを起動するといくつか設定パネルが出てくる
デフォルトのまま次に進めて



設定を"config.xlaunch"という名前で
xlaunch.exeのあるフォルダに保存する

xlaunch.exeのショートカットを作成して、
実行ファイルにconfig.xlaunchを読み込ませる設定をする

ショートカットを[右クリック]してプロパティを開き、
[リンク先]に-run config.xlaunchを加える

D:\VcXsrv\xlaunch.exe -run config.xlaunch

ショートカットはスタートアップフォルダに保存すると自動起動できる
WSL: Xサーバーを自動起動しよう! – demura.net

windows10の場合は左下のスタートボタンを右クリックし、
メニューから[ファイル名を指定して実行]をクリックすると
ダイアログが出てくる

ダイアログのボックスに

shell:startup


を入れてOKをクリックするとスタートアップフォルダが
開くのでショートカットをコピペ

これでwindows起動時にVcXsrvを起動しつつ
タスクトレイに最小化できるようになった

vimのインストール、再び

vimクリップボードを使えるように
インストールを再挑戦
WindowsでLinux commandを動かす - mecobalamin’s diary

前の記事といろいろかぶる

ホームにtmpディレクトリを作ってそこに
gitからソースコードをダウンロード

$ mkdir ~/tmp
$ cd ~/tmp
$ git clone https://github.com/vim/vim.git

vimのビルド
vim-jp » Linuxでのビルド方法

ubuntuでbuild環境を構築
https://www.yokoweb.net/2018/05/04/ubuntu-18_04-gcc-makme-install/

前回足りなくてエラーが出たライブラリは
前もってインストール

$ sudo apt install build-essential
$ sudo apt install libxmu-dev libgtk2.0-dev libxpm-dev
$ sudo apt-get install ncurses-dev

そこそこ大きいし時間かかる
160 MBと366 MBと1.4 MB

vimのインストール

$ cd /home/hogehoge/tmp/vim/src
$ ./configure --prefix=/home/hogehoge/ --with-features=huge --with-x=yes --enable-gui=yes --enable-gtk2-check --enable-multibyte -enable-fail-if-missing
$ make
$ make install

ちなみに

--prefix; インストール先
--with-x=yes --enable-gui=yes --enable-gtk2-check: +clipboardに必要

やり直すときはこのコマンド

$ make distclean
$ rm ~/tmp/vim/src/auto/config.cache

インストール結果の確認

$ ~/bin/vim --version | grep clipboard
+clipboard         +jumplist          +persistent_undo   +vertsplit
+emacs_tags        +mouse_dec         -sun_workshop      +xterm_clipboard

.bashrcで~/bin/にパスを通してとりあえず終了

linuxディレクトリっていろいろあってなにがなんだか。
インストール先とかソースコードの保存先とかここを参考にした
Linuxの基本の基本。Linuxの基本的なディレクトリ構成 | OXY NOTES

Windowsクリップボードを使うときは
VcXsrvが必要

ここを参考にVcXsrvを入れて起動
Windows Subsystem Linux - Make VIM use the clipboard? - Super User
VcXsrvの自動起動についての記事を書いた
mecobalamin.hatenablog.com

.vimrcに

set clipboard=unnamed,autoselect

を追加して、

.bashrcに

export DISPLAY=localhost:0.0

を記入して.bashrcを再読込

$ source ~/.bashrc

これでで無事使えるようになった

.vimrcはとりあえずこんな感じ

set clipboard=unnamed,autoselect
set number
set cmdheight=2
set smartindent
set showmatch
set cursorline
set backspace=indent,eol,start
syntax on
set laststatus=2

ところでヤンクってどういう意味なんだろう
yankの意味・使い方|英辞郎 on the WEB:アルク

2 February 2020 追記
実際にコピーするときは
コマンドモード(esc)からビジュアルモード(v)に入って
コピーしたい範囲を選択する
そしてレジスタを使ってヤンクする
具体的には以下のキーを順に押す

"+y

または、siftを押してコピーモードに入って
マウスで選択したら選択範囲を右クリック

追記ここまで

WSLでssh

Windows Subsystem for Linux (WSL)から
sshを使ってリモートサーバーにログインする

まず秘密鍵を作ってリモートサーバーに置く

$ ssh-keygen -b 2048
$ ssh-copy-id hogehoge@fugafuga.jp

ログインは

$ ssh hogehoge@fugafuga.jp

なんだけどlocaleのエラーが出る

perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "C.UTF-8"
    are supported and installed on your system.

このままだと日本語が文字化けする

WSL その14 - ロケールを日本語に設定する - kledgeb
.bashrcに

export LANG=ja_JP.UTF-8
export LANGUAGE=ja

を追加した

$ locale

を調べると

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

がでるので、日本語の言語パッケージをインストール

$  sudo apt install language-pack-ja

これでリモートログイン時のエラーが出なくなった

それと

~/.ssh/config

にホスト名とかを書いておく
インフラエンジニアじゃなくても押さえておきたいSSHの基礎知識 - Qiita

Host fugafuga
HostName fugafuga.jp
User hogehoge
IdentityFile /home/hogehoge/.ssh/id_rsa
$ ssh fugafuga

でログインできるが、
パスワードは必要
秘密鍵おいてあるのだが。。。

iPhoneアプリケーション開発ガイド

図書館行ったらこんな本があった
www.oreilly.co.jp

ちょっと勉強がてらやってみることに。
前準備としてローカルウェブサーバーを立ち上げる。

開発用ローカルサーバを立ち上げる方法 - Qiita
外部からアクセスできるローカルサーバーを立てる | プロカツ!

power shellでindex.htmlをおいたディレクトリに移動し、
pythonのhttp.serverを実行する

> python -m http.server 8080

ちなみにpython3
8080はポート番号

ブラウザからアクセスするにはアドレス欄に

IPアドレス: port番号

でオッケー

iPhoneからもアクセスできた。

WSLでもサーバーは起動できたが
ブラウザからアクセスできず。。。
なんでだろ。
ファイアウォールか何か?

ここも参考になりそう
モバイル Web アプリケーション・フレームワークの比較: 第 3 回 jQTouch で次期モバイル Web アプリケーションを強化する

WindowsでLinux commandを動かす

windowslinuxコマンドが動かせるようになってるらしい
WSL: Windows Subsystem for Linuxという
Windows 10でLinuxプログラムを利用可能にするWSLをインストールする(バージョン1803以降対応版):Tech TIPS - @IT

試してみた

インストールは上のサイトを参考にしたらすぐできた
簡単に手順をまとめてみた

1. [スタート]を右クリック
2. [アプリと機能]をクリック
3. [プログラムと機能]をクリック
f:id:mecobalamin:20190527164215p:plain

4. [Windowsの機能の有効化または無効化]をクリック
f:id:mecobalamin:20190527164243p:plain

5. [Windows Subsystem for Linux]にチェックを入れて[OK]をクリック
f:id:mecobalamin:20190527164316p:plain

6. [今すぐ再起動]をクリック
7. [Microsoft Store]で[wsl]を検索
f:id:mecobalamin:20190527164951p:plain

8. [ubuntu]をインストール。ubuntuを選んだが、ディストリビューションは好みで選んだらいいと思う
f:id:mecobalamin:20190527165009p:plain

9. wslを起動してwslで使用するuser名とpasswordを登録する

ここまででターミナルとコマンドが動く

wslの仕組みは理解できてない
Windows Subsystem for Linux - Wikipedia

ディストリビューション・バージョンはこれ

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.1 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.1 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic


次は使いやすくするために設定をかえる
こっから先は好みの問題
とりあえずshellはデフォルトのbash
エディタはvimが使いたい
設定は.vimrcを変更する

以前はemacsだったけど
今はwindowsatom使ってるし
wslはvimでいいかと宗旨変え

vimではテキストをコピーしたらクリップボードに入って欲しいけど
そのままではうまくいかないっぽいので.vimrcの編集も含めて以下はメモ

30 March 2019追記

クリップボードを有効化するにはこのあとのメモだけではうまく行かず、
vimコンパイルとVcXsrvのインストールをしている
mecobalamin.hatenablog.com
mecobalamin.hatenablog.com

追記ここまで

bashvimの設定ファイルを編集する
.bashrcはあったが、.exrc/.vimrcはhomeには見つからない
vi/vimともに.exrc/.vimrcを読み込んでる
どちらか一方があればよいのか?

profileの読み込み順はこんな感じらしい
[Linux]環境変数の読み込み順番 - Qiita

".vimrc"の編集
初心者向け vimrcの設定方法 - Qiita
Vimの設定ファイルを作る - Qiita
Vim のカスタマイズ 〜 画面表示の設定 〜 - Vim のブログ

" 行番号の表示
set number
" コマンド行を2行にする
set cmdheight=2
" タブをスペースx2
set tabstop=2
" オートインデント
set smartindent
" 対応するカッコの表示
set showmatch
" カーソル行の表示
set cursorline
" クリップボードにコピー
set clipboard=unnamed,autoselect
" 挿入モードでバックスペースで削除できるようにする
set backspace=indent,eol,start
" コードの色分け
sytanx on
" コメントは黄色(デフォルトは青で黒地には見辛い)
hi Comment ctermfg=6

WSL上のvimでクリップボードを共有する方法 - Qiita

vimクリップボードが使えない。。。
ターミナルにlessを使って表示してコピー
vimからクリップボードにコピーする方法を
書いている人もいるけど、うまくいってない
"+clipboard"になるようにbuildするのも方法っぽい

ubuntu初心者なのでいろいろわからん
[Ubuntu] apt-get まとめ - Qiita
vim-jp » Linuxでのビルド方法

$ git clone https://github.com/vim/vim.git

homeにvimディレクトリができる
configを使ってインストール環境を調べる

$ ~/vim/.git/config

エラーのあるところでとまる

で、コンパイラがないとかなんとかエラーが出てるので
コンパイル環境をインストール

ubuntuでbuild環境を構築
【Ubuntu 18.04 LTS Server】gcc, make などの開発ツールをインストールして使う | The modern stone age.

$ sudo apt install build-essential

こんどはなにかライブラリが足りないって

no terminal library found
checking for tgetent()... configure: error: NOT FOUND!
      You need to install a terminal library; for example ncurses.
      Or specify the name of the library with --with-tlib.

なんでインストール

$ sudo apt-get install ncurses-dev

で、vimのインストール

$ cd ~/vim/
$ ./configure --prefix=$HOME/usr/bin --with-features=huge --with-x=yes --enable-gui=yes --enable-gtk2-check --enable-multibyte -enable-fail-if-missing
$ make
$ make install

やっぱり途中で止まる
ライブラリが足りないみたい

$ sudo apt install libxmu-dev libgtk2.0-dev libxpm-dev

やり直し

$ make distclean
$ rm ~/vim/src/auto/config.cache
$ sudo apt install libxmu-dev libgtk2.0-dev libxpm-dev
$ ./configure --prefix=$HOME/usr/bin --with-features=huge --with-x=yes --enable-gui=yes --enable-gtk2-check --enable-multibyte -enable-fail-if-missing
$ make
$ make install

バージョンの確認

$ vim --version | grep clip
+clipboard         +jumplist          +persistent_undo   +vertsplit
+emacs_tags        +mouse_dec         -sun_workshop      +xterm_clipboard

こうなってればokとのことだけどだけど。。。
クリップボードにコピーできない。。。

一旦ここでペンディング

    • -

19 November 2018追記
コンパイルはできてvimも起動するんだけど、
まだクリップボードには入ってない
なんかvimは仕組みが特殊ぽい

【Linux】クリップボードについて【X Window System】 - Man On a Mission
Vim備忘録 コピペとレジスタ - Man On a Mission

これかな?
https://blog.himanoa.net/entries/20