vimで編集しながらGoogle翻訳を使いたい
Google 翻訳を行う
vim からgoogle 翻訳を使えるようになりたい
https://qiita.com/koji-kojiro/items/225e6f4c75249723e1c0
vimで論文などを執筆しているとふと英語を調べたくなったり、自分の書いた英語がきちんと意味が通っているか確かめたくなる。そこでいちいちブラウザを開くのは面倒。
- 端末からgoogle 翻訳をする
$ git clone https://github.com/soimort/translate-shell $ cd translate-shell/ $ make $ [sudo] make install
- vimとの連携
vimrcの中に以下のように書けば
te : 選択範囲を英語に翻訳
tj : 選択範囲を日本語に翻訳
"翻訳 vnoremap te :w !trans -b -sl=ja -tl=en<CR> vnoremap tj :w !trans -b -sl=en -tl=ja<CR>
更に検索結果を書き込みたいとき(少しまわりくどい、なにかいい案はないかな)
vnoremap te "jy:r!trans -b -sl=ja -tl=en '<C-r>j'<CR><CR> vnoremap tj "jy:r!trans -b -sl=en -tl=ja '<C-r>j'<CR><CR>
クラウドメモでvimを使いたい
xacroでRobotModelを表示したい
launchのpathを変えるだけでいろいろなRobotModelを使いたい
今までurdf内のpathの関係などは
xacroでurdf内でも変数をつかえる
xacroを使うとurdfの中でも変数とかparamとか色々使えるようになるらしい。 http://wiki.ros.org/xacro
書き方などは書いてあるが、少し手間取ったのでメモ
<RobotModel_pub.launch>
<!-- --> <launch> <arg name="dire" default="/home/IN_urdf_and_dae_directory/" /> <arg name="urdf" default="AAA.urdf.xacro" /> <param name="RobotName" command="$(find xacro)/xacro '$(arg dire)/$(arg urdf)' path:=$(arg dire)" /> </launch>
<HOGE.urdf.xacro>
<?xml version="1.0"?> <robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="RobotName"> <xacro:arg name="path" default="/home/In_dae_file_directory"/> <link name="map"> <visual name="map_visual"> <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/> <geometry name="RobotName_geom"> <mesh filename="file://$(arg path)/Robot.dae" scale="1 1 1"/> </geometry> </visual> </link> </robot>
<ファイル構成>
home
-urdf/ toaru.urdf.acro
-urdf/ Robot.dae
roslaunch [your_package] RobotModel_pub.launch dire:=home/urdf/ urdf:=toaru.urdf.xacro
こんな感じでpathがlaunchだけで完結することができて色々こんがらがらない. もしくは使う目的が決まっていればlaunchの中でdefaultの値を変更してしまう。
もちろん、package内で使うときはfind packageとかを使ってもいい。 便利。
vim でメモを管理したい、 Qfixhowm
しっくりくるメモtoolは何か
普段の研究の成果や引き継ぎなど、メモを残しておきたい時にふとメモするとそのメモがどこにいったかわからなくなってしまう。 じゃあWebのメモ管理Toolを使用してみようと思って、Googl document, Google keep, Evernote, wripeと使ってきたがどうもしっくりこない。 なぜか?それはvimではないからではないかという結論になった。普段の開発やメモ書きはすべてvim でやっているのに残そうとするメモだけ、わざわざWebに移すという作業が面倒であり続かないのでは、と理由をつけてみる。
そこで、vimを用いたQfixhowmというメモ管理ツールに出会った
Qfixhowm
大きなサイトがある。使い方も詳しい。
sites.google.com
メモをリンクをつけながら管理したり、参照をつけながらメモをとったり、日記機能があったりする。
TODOや予定リストなど、必要な機能が十分あるように感じた。
1. ダウンロード、環境設定
ここのサイトを参考に設定
vimrcの中 " キーマップリーダー let QFixHowm_Key = 'g' " howm_dirはファイルを保存したいディレクトリを設定 let howm_dir = '<qfixhowmのホームパス(任意に設定)>' let howm_filename = '%Y/%m/%Y-%m-%d-%H%M%S.md' let howm_fileencoding = 'utf-8' let howm_fileformat = 'dos' " キーコードやマッピングされたキー列が完了するのを待つ時間(ミリ秒) set timeout timeoutlen=3000 ttimeoutlen=100 " " プレビューや絞り込みをQuickFix/ロケーションリストの両方で有効化(デフォル " ト:2) let QFixWin_EnableMode = 1 " QFixHowmのファイルタイプ " 私がよくmarkdown使うので以下のように設定 let QFixHowm_FileType = 'markdown' " タイトル記号を # に変更する(markdown使用の都合上) let QFixHowm_Title = '#' " QuickFixウィンドウでもプレビューや絞り込みを有効化 let QFixWin_EnableMode = 1 " QFixHowm/QFixGrepの結果表示にロケーションリストを使用する/しない let QFix_UseLocationList = 1 set shellslash " textwidthの再設定 au Filetype qfix_memo setlocal textwidth=0 " 休日定義ファイル " 休日定義ファイルは qfixhowm-master 内にあります let QFixHowm_HolidayFile = '<休日定義ファイル Sche-Hd-0000-00-00-000000.utf8 までのパス>' " オートリンクでファイルを開く let QFixHowm_Wiki = 1
2.簡単な使い方
調べて、簡単につかってみた。 メモ書き
[書く系]
- 日記の作成:g,<\space>
日付のフォルダに入る
とりあえずメモ: g,u 毎回同じファイルが開かれる Qmem-00-hogeになる。
TODO 作成: g,d
https://sites.google.com/site/fudist/Home/qfixhowm/howm-reminder
[2019-03-07]@ 予定のテスト@の次は何日間か入れられる ex)@3 3日間
[2019-03-07]! 締め切り 締め切りの7日前から出される ex)!10 10日間
[2019-03-07]+ TODO 7日間で出される
予定の確認:g,y
Todoの確認:g,t
[見る系]
- 検索:g,s
- 日記の中でエントリを一覧表示: g,A
- 全エントリ一覧: g,ra
[リンク系 ]
- キーワードリンク
keywordで保存するとそのファイルのリンクが作成される.
home/keywordにファイルが作成されている
come-from リンク
<<<これがリンクの貼り方 こうやると他のすべてのファイルの中でアンダーラインが引かれて、検索リンクになる let QFixHowm_Wiki = 1 これをONにしておくとあまり使えない。 定義元のファイルに言ってしまう。go-to リンク
>>>これがリンクの張り方 こうやるとその名前の検索が始まるcome-fromと組み合わせるといい感じになる気がする。 これがリンクの張り方ペアリンクhownファイル
作り方:g,jで現在開いてるメモの関連メモを作成する。保存先:<howm_dir>/pirlink/hoge.howm. "ペアリンクファイルの保存場所 let QFixHowm_PairLinkDir = 'pairlink'

もう少し細かく使い方を別記事にて説明したい。とりあえず、
便利。
ROS 画像からoccupancy grid を任意の値でpublishしたい
画像からros occupancy grid mapをpublish
既存のmap_server(http://wiki.ros.org/map_server)では画像からでは0(free), 100(occupied), -1(unknown)の3つの状態しかえらぶことができない。 将来のバージョンではグラデーションができるようになるみたいだが、すぐこの機能が欲しかったので実装してみた。
コード
img2navgrid.py
#!/usr/bin/env python # -*- coding: utf-8 -*- import numpy as np import sys import rospy import yaml from PIL import Image from pyquaternion import Quaternion #sudo pip install pyquaternion from nav_msgs.msg import OccupancyGrid if __name__== '__main__': args = sys.argv if(len(args) != 2): print("Usage: python img2gridmap.py <yaml>") #yaml file名 yaml_file = args[1] with open("map_reorigin.bt.yaml", "rt") as fp: text = fp.read() map_info = yaml.safe_load(text) #read img im = np.array(Image.open(map_info['image']), dtype='int8') print('##########image info############') print('name: %s' % map_info["image"]) print('size: %s' % str(im.shape)) print('origin[x,y,yaw]: %s' % str(map_info["origin"])) print('resolution: %s' % str(map_info["resolution"])) print('################################') # set ros node publish_gridmap = rospy.Publisher("/map_py", OccupancyGrid, queue_size=10) rospy.init_node("map_server_py", anonymous=True) # set msg_info _map = OccupancyGrid() _map.header.stamp = rospy.Time.now() _map.header.frame_id = "/map" _map.info.resolution = map_info["resolution"] _map.info.width = im.shape[1] _map.info.height = im.shape[0] _map.info.origin.position.x = map_info["origin"][0] _map.info.origin.position.y = map_info["origin"][1] rad = map_info["origin"][2] q = Quaternion(axis=[0,0,1], angle=rad).elements _map.info.origin.orientation.x = q[1] _map.info.origin.orientation.y = q[2] _map.info.origin.orientation.z = q[3] _map.info.origin.orientation.w = q[0] #change occupancy data im_py = np.flip(im,0).reshape(-1,1) _map.data = im_py r = rospy.Rate(1) while not rospy.is_shutdown(): publish_gridmap.publish(_map) r.sleep() print("publish")
使い方
python img2navgrid [yaml file]
便利
linux google driveと同期
Ubuntu でメモの管理を一箇所でまとめてやりたい
自分はエディタとしてVimを使用している。
メモなどをふと書こうと思った時に、端末上で書いてしまいどのPCで書いたか忘れてしまうことが多々ある。
そんなとき発見した記事
解決方法、Google Driveを同期してその中でメモを取る。
参考:
Ubuntu(他Linux)で Googleドライブ を使う方法アレコレまとめ | mogi2fruitsどっとねっと
google-drive-ocamlfuse のダウンロード
$sudo add-apt-repository ppa:alessandro-strada/ppa $sudo apt-get update $sudo apt-get install google-drive-ocamlfuse
1. アカウント認証
$ google-drive-ocamlfuse
2. フォルダの作成、マウント
$ mkdir ~/TOARU_google_drive $ google-drive-ocamlfuse ~/TOARU_google_drive
こんな感じになる.

3. 使用し終わったらアンマウント
$fusermount -u ~/TOARU_google_drive
便利
vim の検索の速度を上げる ctags
vim の定義元に飛べる
sudo apt install exuberant-ctags
ctags -R --extra=+f
この辺のコマンドと組み合わせる。
Ctrl + o 前の場所へ
Ctrl + i 次の場所へ