- 投稿日:2020-03-19T21:37:01+09:00
neovimの基本設定(備忘録・macOS)
macOSを使っています
ターミナルソフトはAlacrittyかiterm シェルはzsh
以前vimを使っていたがほとんど忘れてしまったからまた一からやり直したい
以前の設定ファイル・プラグインは全て削除した1,最低限のinit.vim
1, init.vimとは
neovimの設定ファイル
vimで言う.vimrc
vimscriptで書かれている2, init.vimの場所
~/.config/nvim/init.vim
なかったら作る(↓作り方)terminal$ mkdir .config/nvim $ cd .config/nvim $ nvim init.vim3, init.vimのスクリプト
誰かが作ってるやつを必要そうなやつだけ少しずつパクらさせていただいています
init.vimset encoding=utf-8 "文字コード set number "行番号を表示 set title "ファイル名を表示 set splitbelow "新しいウィンドウを下に開く set splitright "新しいウィンドウを右に開く set noequalalways "ウィンドウサイズの自動調整を無効に set wildmenu "wildmenuオプションを有効 set hls "検索結果をハイライト set ruler "カーソルの位置表示を行う set clipboard=unnamed "ヤンクでクリップボードにコピー set showmatch "対応する括弧を強調表示 set nrformats= "すべての数を10進数として扱う set expandtab "入力モードでTabキー押下時に半角スペースを挿入 set tabstop=4 "タブ文字の表示幅 set shiftwidth=2 "インデント幅2, dein.vimの基本設定
1, dein.vimとは?
暗黒美無王Shougoさんが作っているvimのpluginを管理するためのplugin
https://github.com/Shougo/dein.vim2, dein.vimのインストール
https://github.com/Shougo/dein.vim に書いてあるようにするだけでいい
ターミナルでterminal$ curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh $ sh ./installer.sh ~/.cache/dein次に、init.vimに
init.vim"dein.vim setting if &compatible set nocompatible endif " Add the dein installation directory into runtimepath set runtimepath+=~/.cache/dein/repos/github.com/Shougo/dein.vim if dein#load_state('~/.cache/dein') call dein#begin('~/.cache/dein') "Load TOML call dein#load_toml('~/.config/nvim/dein.toml', {'lazy': 0}) call dein#load_toml('~/.config/nvim/dein_lazy.toml', {'lazy': 1}) call dein#end() call dein#save_state() endif if dein#check_install() call dein#install() endif filetype plugin indent on syntax onと書いてvimを再起動
3, dein.vimのpluginをtomlを使って管理
tomlを使うとvimの起動時に起動するpluginと遅延して起動するpluginを分けて設定することができる
terminal~/.config/nvim $ nvim dein.tomlとdein.tomlを作成
dein.toml[[plugins]] repo = 'Shougo/dein.vim'とする
terminal~/.config/nvim $ nvim dein_lazy.tomldein_lazy.tomlという名前の空ファイルを作って保存しておく
これでpluginのインストールは楽になる
3, colorschemeの設定
デフォルトは見づらいからcolorschemeだけ設定する
プラグインとカラースキームとかは https://vimawesome.com から検索できる
なかなか便利
今回はmaterialを使う
dein.tomlにdein.toml[[plugins]] repo = 'jdkanani/vim-material-theme'をつけたす
init.vimの最後に
init.vimset termguicolors "重要!! set background=dark colorscheme material-themeこれでcolorschemeのインストールは完了
次回はコマンドかな?
- 投稿日:2020-03-19T21:15:10+09:00
Excel for Macで動くシェイプテキスト置換ツールバーボタンを作る
業務の都合上、自分だけMacユーザーでほかの全員がWindowsとエクセルで画面設計書を作っているという状況が稀によくあります。エクセルで画面設計書を作るのは重いので苦手ですが、協業する上では仕方がない場合もあります。
さて、画面の絵の上によくシェイプテキストを乗っけて注釈やIDを付けることがありますが、シェイプテキストは標準の検索置換機能には対応していません。これを実現するにはVBAが必要ですが、ありがたいことに既にQiitaに記事がありました。
上記の記事を参考にMac版のエクセルでツールバーから使えるシェイプテキスト置換機能を作ってみました。
使い方
オリジナルのコードはセル内で呼び出す関数でしたが、これをリボンから呼び出す機能に変更しています。
コード
Sub ReplaceShapeText() Dim sh As Shape Dim userInput As String Dim findStr As String Dim repStr As String Dim commaEscape As String Dim commaEscapePtn As String commaEscape = "\," commaEscapePtn = "%%COMMA%%" userInput = Application.InputBox("Please input search text and replace text with a comma. Example) find,replace") userInput = Replace(userInput, commaEscape, commaEscapePtn) If Len(userInput) < 3 Or InStr(userInput, ",") = 0 Then MsgBox ("Your input does not fill the requirement. Quit the execution.") Exit Sub End If findStr = Split(userInput, ",")(0) findStr = Replace(findStr, commaEscapePtn, ",") repStr = Split(userInput, ",")(1) repStr = Replace(repStr, commaEscapePtn, ",") For Each sh In ActiveSheet.Shapes If sh.TextFrame2.HasText = msoTrue And sh.Type <> msoGroup Then sh.TextFrame2.TextRange.Text = Replace(sh.TextFrame2.TextRange.Text, findStr, repStr) End If Next End Subリボンへの登録方法
最初VBAの使い方が全く分からなかったので詳しめに記載。
- ファイルを全て閉じる
- 適当な新規ブックを作成する
- メニューの「ツール > マクロ」から、Visual Basic Editorを開く
- 左のツリーから"This Workbook"をダブルクリックしてコードをペースト
- ブックを Excel Add-in 形式で保存
- メニューの「ツール > Excelアドイン…」を選択(「挿入 > アドイン」ではないので注意)
- 先程保存した拡張子が
.xlam
のファイルを一覧に登録し、チェックボックスを付ける
- メニューの「Excel > 環境設定」を開き、リボンのカスタマイズ画面へ移動する
- 左側のプルダウンを「マクロ」に変更し、適当なリボンにボタンを追加する
感想・ハマったところ
- Excel for Macが日本語に弱い
- Visual Basic Editor上で日本語が使えない。無理やりペーストすると ????? になってしまう
InputBox
では日本語を受け取れない
- なぜか
Application.InputBox
では受け取れるsh.TextFrame2.TextRange.Text
にアクセスしようとするとたまにエラーで止まる
- シェイプがグループ化されていることが原因だったので、
sh.Type <> msoGroup
からグループでないことを判定するようにした- Excel for Macが正規表現に非対応
- 「正規表現化したらめっちゃ便利じゃん!」って思ったけどMac版は未対応だった
仕様です
- 置換に成功したシェイプの書式が外れる!
- 普通のセルの置換でも外れてしまうので標準的な挙動
- 1文字づつ書式をコピーして書き戻す実装は書けるっぽい
- マクロを実行したあとに元に戻す(Cmd+Z)ができない!
- エクセルの仕様なので注意するしかなさそう
- 【Excel】元に戻す(アンドゥ・Ctrl+Z)が使えない原因 | すまおじ.com
- 投稿日:2020-03-19T21:15:10+09:00
Excel for Macで動くシェイプテキスト置換ボタンを作る
業務の都合上、自分だけMacユーザーでほかの全員がWindowsとエクセルで画面設計書を作っているという状況が稀によくあります。エクセルで画面設計書を作るのは重いので苦手ですが、協業する上では仕方がない場合もあります。
さて、画面の絵の上によくシェイプテキストを乗っけて注釈やIDを付けることがありますが、シェイプテキストは標準の検索置換機能には対応していません。これを実現するにはVBAが必要ですが、ありがたいことに既にQiitaに記事がありました。
上記の記事を参考にMac版のエクセルでツールバーから使えるシェイプテキスト置換機能を作ってみました。
使い方
オリジナルのコードはセル内で呼び出す関数でしたが、これをリボンから呼び出す機能に変更しています。
コード
Sub ReplaceShapeText() Dim sh As Shape Dim userInput As String Dim findStr As String Dim repStr As String Dim commaEscape As String Dim commaEscapePtn As String commaEscape = "\," commaEscapePtn = "%%COMMA%%" userInput = Application.InputBox("Please input search text and replace text with a comma. Example) find,replace") userInput = Replace(userInput, commaEscape, commaEscapePtn) If Len(userInput) < 3 Or InStr(userInput, ",") = 0 Then MsgBox ("Your input does not fill the requirement. Quit the execution.") Exit Sub End If findStr = Split(userInput, ",")(0) findStr = Replace(findStr, commaEscapePtn, ",") repStr = Split(userInput, ",")(1) repStr = Replace(repStr, commaEscapePtn, ",") For Each sh In ActiveSheet.Shapes If sh.TextFrame2.HasText = msoTrue And sh.Type <> msoGroup Then sh.TextFrame2.TextRange.Text = Replace(sh.TextFrame2.TextRange.Text, findStr, repStr) End If Next End Subリボンへの登録方法
最初VBAの使い方が全く分からなかったので詳しめに記載。
- ファイルを全て閉じる
- 適当な新規ブックを作成する
- メニューの「ツール > マクロ」から、Visual Basic Editorを開く
- 左のツリーから"This Workbook"をダブルクリックしてコードをペースト
- ブックを Excel Add-in 形式で保存
- メニューの「ツール > Excelアドイン…」を選択(「挿入 > アドイン」ではないので注意)
- 先程保存した拡張子が
.xlam
のファイルを一覧に登録し、チェックボックスを付ける
- メニューの「Excel > 環境設定」を開き、リボンのカスタマイズ画面へ移動する
- 左側のプルダウンを「マクロ」に変更し、適当なリボンにボタンを追加する
感想・ハマったところ
- Excel for Macが日本語に弱い
- Visual Basic Editor上で日本語が使えない。無理やりペーストすると ????? になってしまう
InputBox
では日本語を受け取れない
- なぜか
Application.InputBox
では受け取れるsh.TextFrame2.TextRange.Text
にアクセスしようとするとたまにエラーで止まる
- シェイプがグループ化されていることが原因だったので、
sh.Type <> msoGroup
からグループでないことを判定するようにした- Excel for Macが正規表現に非対応
- 「正規表現化したらめっちゃ便利じゃん!」って思ったけどMac版のVBAは未対応だった
- 【Excel】シート内のシェイプの文字列を正規表現で置換する - Qiita
- メモ:Excel for Mac のマクロは正規表現を使えない - 駆け出し女流エンジニアブログ@回復中
- RegEx with Excel VBA on Mac - Stack Overflow
仕様です
- 置換に成功したシェイプの書式が外れる!
- 普通のセルの置換でも外れてしまうので標準的な挙動
- 1文字づつ書式をコピーして書き戻す実装は書けるっぽい
- マクロを実行したあとに元に戻す(Cmd+Z)ができない!
- エクセルの仕様なので注意するしかなさそう
- 【Excel】元に戻す(アンドゥ・Ctrl+Z)が使えない原因 | すまおじ.com
- 投稿日:2020-03-19T21:15:10+09:00
Excel for Macでシェイプテキスト置換ボタンを作る
業務の都合上、自分だけMacユーザーでほかの全員がWindowsとエクセルで画面設計書を作っているという状況が稀によくあります。Mac版のエクセルでワイヤーフレーム的なのを書くのは挙動が重いので苦手ですが、協業する上では仕方がない場合もあります。
さて、画面の絵の上によくシェイプテキストを乗っけて注釈やIDを付けることがありますが、シェイプテキストは標準の検索置換機能には対応していません。これを実現するにはVBAが必要ですが、ありがたいことに既にQiitaに記事がありました。
上記の記事を参考にMac版のエクセルでツールバーから使えるシェイプテキスト置換機能を作ってみました。
使い方
オリジナルのコードはセル内で呼び出す関数でしたが、これをリボンから呼び出す機能に変更しています。
コード
Sub ReplaceShapeText() Dim sh As Shape Dim userInput As String Dim findStr As String Dim repStr As String Dim commaEscape As String Dim commaEscapePtn As String commaEscape = "\," commaEscapePtn = "%%COMMA%%" userInput = Application.InputBox("Please input search text and replace text with a comma. Example) find,replace") userInput = Replace(userInput, commaEscape, commaEscapePtn) If Len(userInput) < 3 Or InStr(userInput, ",") = 0 Then MsgBox ("Your input does not fill the requirement. Quit the execution.") Exit Sub End If findStr = Split(userInput, ",")(0) findStr = Replace(findStr, commaEscapePtn, ",") repStr = Split(userInput, ",")(1) repStr = Replace(repStr, commaEscapePtn, ",") For Each sh In ActiveSheet.Shapes If sh.TextFrame2.HasText = msoTrue And sh.Type <> msoGroup Then sh.TextFrame2.TextRange.Text = Replace(sh.TextFrame2.TextRange.Text, findStr, repStr) End If Next End Subリボンへの登録方法
最初VBAの使い方が全く分からなかったので詳しめに記載。
- ファイルを全て閉じる
- 適当な新規ブックを作成する
- メニューの「ツール > マクロ」から、Visual Basic Editorを開く
- 左のツリーから"This Workbook"をダブルクリックしてコードをペースト
- ブックを Excel Add-in 形式で保存
- メニューの「ツール > Excelアドイン…」を選択(「挿入 > アドイン」ではないので注意)
- 先程保存した拡張子が
.xlam
のファイルを一覧に登録し、チェックボックスを付ける
- メニューの「Excel > 環境設定」を開き、リボンのカスタマイズ画面へ移動する
- 左側のプルダウンを「マクロ」に変更し、適当なリボンにボタンを追加する
感想・ハマったところ
- Excel for Macが日本語に弱い
- Visual Basic Editor上で日本語が使えない。無理やりペーストすると ????? になってしまう
InputBox
では日本語を受け取れない
- なぜか
Application.InputBox
では受け取れるsh.TextFrame2.TextRange.Text
にアクセスしようとするとたまにエラーで止まる
- シェイプがグループ化されていることが原因だったので、
sh.Type <> msoGroup
からグループでないことを判定するようにした- Excel for Macが正規表現に非対応
- 「正規表現化したらめっちゃ便利じゃん!」って思ったけどMac版のVBAは未対応だった
- 【Excel】シート内のシェイプの文字列を正規表現で置換する - Qiita
- メモ:Excel for Mac のマクロは正規表現を使えない - 駆け出し女流エンジニアブログ@回復中
- RegEx with Excel VBA on Mac - Stack Overflow
仕様です
- 置換に成功したシェイプの書式が外れる!
- 普通のセルの置換でも外れてしまうので標準的な挙動
- 1文字づつ書式をコピーして書き戻す実装は書けるっぽい
- マクロを実行したあとに元に戻す(Cmd+Z)ができない!
- エクセルの仕様なので注意するしかなさそう
- 【Excel】元に戻す(アンドゥ・Ctrl+Z)が使えない原因 | すまおじ.com