20200319のMacに関する記事は4件です。

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.vim

3, init.vimのスクリプト

誰かが作ってるやつを必要そうなやつだけ少しずつパクらさせていただいています

init.vim
set 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.vim

2, 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.toml

dein_lazy.tomlという名前の空ファイルを作って保存しておく

これでpluginのインストールは楽になる

3, colorschemeの設定

デフォルトは見づらいからcolorschemeだけ設定する
プラグインとカラースキームとかは https://vimawesome.com から検索できる
なかなか便利
今回はmaterialを使う
dein.tomlに

dein.toml
[[plugins]]
repo = 'jdkanani/vim-material-theme'

をつけたす

init.vimの最後に

init.vim
set termguicolors   "重要!!
set background=dark
colorscheme material-theme

これでcolorschemeのインストールは完了

次回はコマンドかな?

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Excel for Macで動くシェイプテキスト置換ツールバーボタンを作る

業務の都合上、自分だけMacユーザーでほかの全員がWindowsとエクセルで画面設計書を作っているという状況が稀によくあります。エクセルで画面設計書を作るのは重いので苦手ですが、協業する上では仕方がない場合もあります。

さて、画面の絵の上によくシェイプテキストを乗っけて注釈やIDを付けることがありますが、シェイプテキストは標準の検索置換機能には対応していません。これを実現するにはVBAが必要ですが、ありがたいことに既にQiitaに記事がありました。

上記の記事を参考にMac版のエクセルでツールバーから使えるシェイプテキスト置換機能を作ってみました。

使い方

オリジナルのコードはセル内で呼び出す関数でしたが、これをリボンから呼び出す機能に変更しています。

  1. ツールバーボタンを押すと入力欄が出るので、カンマ区切りで検索文字,置換文字の形式で入力

    image.png

    • 検索・置換文字自体に半角カンマが含まれる場合は\,でエスケープ
  2. キャンセルを押したり、入力文字にカンマが無かったりするとメッセージが出て終了

    image.png

  3. 問題なければシェイプテキストが置換されます

    image.png

コード

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の使い方が全く分からなかったので詳しめに記載。

  1. ファイルを全て閉じる
  2. 適当な新規ブックを作成する
  3. メニューの「ツール > マクロ」から、Visual Basic Editorを開く
  4. 左のツリーから"This Workbook"をダブルクリックしてコードをペースト image.png
  5. ブックを Excel Add-in 形式で保存
    image.png
  6. メニューの「ツール > Excelアドイン…」を選択(「挿入 > アドイン」ではないので注意)
  7. 先程保存した拡張子が.xlamのファイルを一覧に登録し、チェックボックスを付ける
    image.png
  8. メニューの「Excel > 環境設定」を開き、リボンのカスタマイズ画面へ移動する
  9. 左側のプルダウンを「マクロ」に変更し、適当なリボンにボタンを追加する image.png

感想・ハマったところ

  • Excel for Macが日本語に弱い
    • Visual Basic Editor上で日本語が使えない。無理やりペーストすると ????? になってしまう
    • InputBoxでは日本語を受け取れない
      • なぜか Application.InputBox では受け取れる
  • sh.TextFrame2.TextRange.Textにアクセスしようとするとたまにエラーで止まる
    • シェイプがグループ化されていることが原因だったので、sh.Type <> msoGroupからグループでないことを判定するようにした
  • Excel for Macが正規表現に非対応
    • 「正規表現化したらめっちゃ便利じゃん!」って思ったけどMac版は未対応だった

仕様です

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Excel for Macで動くシェイプテキスト置換ボタンを作る

業務の都合上、自分だけMacユーザーでほかの全員がWindowsとエクセルで画面設計書を作っているという状況が稀によくあります。エクセルで画面設計書を作るのは重いので苦手ですが、協業する上では仕方がない場合もあります。

さて、画面の絵の上によくシェイプテキストを乗っけて注釈やIDを付けることがありますが、シェイプテキストは標準の検索置換機能には対応していません。これを実現するにはVBAが必要ですが、ありがたいことに既にQiitaに記事がありました。

上記の記事を参考にMac版のエクセルでツールバーから使えるシェイプテキスト置換機能を作ってみました。

使い方

オリジナルのコードはセル内で呼び出す関数でしたが、これをリボンから呼び出す機能に変更しています。

  1. ツールバーボタンを押すと入力欄が出るので、カンマ区切りで検索文字,置換文字の形式で入力

    image.png

    • 検索・置換文字自体に半角カンマが含まれる場合は\,でエスケープ
  2. キャンセルを押したり、入力文字にカンマが無かったりするとメッセージが出て終了

    image.png

  3. 問題なければシェイプテキストが置換されます

    image.png

コード

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の使い方が全く分からなかったので詳しめに記載。

  1. ファイルを全て閉じる
  2. 適当な新規ブックを作成する
  3. メニューの「ツール > マクロ」から、Visual Basic Editorを開く
  4. 左のツリーから"This Workbook"をダブルクリックしてコードをペースト image.png
  5. ブックを Excel Add-in 形式で保存
    image.png
  6. メニューの「ツール > Excelアドイン…」を選択(「挿入 > アドイン」ではないので注意)
  7. 先程保存した拡張子が.xlamのファイルを一覧に登録し、チェックボックスを付ける
    image.png
  8. メニューの「Excel > 環境設定」を開き、リボンのカスタマイズ画面へ移動する
  9. 左側のプルダウンを「マクロ」に変更し、適当なリボンにボタンを追加する image.png

感想・ハマったところ

仕様です

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Excel for Macでシェイプテキスト置換ボタンを作る

業務の都合上、自分だけMacユーザーでほかの全員がWindowsとエクセルで画面設計書を作っているという状況が稀によくあります。Mac版のエクセルでワイヤーフレーム的なのを書くのは挙動が重いので苦手ですが、協業する上では仕方がない場合もあります。

さて、画面の絵の上によくシェイプテキストを乗っけて注釈やIDを付けることがありますが、シェイプテキストは標準の検索置換機能には対応していません。これを実現するにはVBAが必要ですが、ありがたいことに既にQiitaに記事がありました。

上記の記事を参考にMac版のエクセルでツールバーから使えるシェイプテキスト置換機能を作ってみました。

使い方

オリジナルのコードはセル内で呼び出す関数でしたが、これをリボンから呼び出す機能に変更しています。

  1. ツールバーボタンを押すと入力欄が出るので、カンマ区切りで検索文字,置換文字の形式で入力

    image.png

    • 検索・置換文字自体に半角カンマが含まれる場合は\,でエスケープ
  2. キャンセルを押したり、入力文字にカンマが無かったりするとメッセージが出て終了

    image.png

  3. 問題なければシェイプテキストが置換されます

    image.png

コード

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の使い方が全く分からなかったので詳しめに記載。

  1. ファイルを全て閉じる
  2. 適当な新規ブックを作成する
  3. メニューの「ツール > マクロ」から、Visual Basic Editorを開く
  4. 左のツリーから"This Workbook"をダブルクリックしてコードをペースト image.png
  5. ブックを Excel Add-in 形式で保存
    image.png
  6. メニューの「ツール > Excelアドイン…」を選択(「挿入 > アドイン」ではないので注意)
  7. 先程保存した拡張子が.xlamのファイルを一覧に登録し、チェックボックスを付ける
    image.png
  8. メニューの「Excel > 環境設定」を開き、リボンのカスタマイズ画面へ移動する
  9. 左側のプルダウンを「マクロ」に変更し、適当なリボンにボタンを追加する image.png

感想・ハマったところ

仕様です

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む