[PYTHON] Éviter les pièges de l'utilisation d'un Mac (pour les utilisateurs Linux?)

Bonsoir. Je suis un utilisateur Mac.

Je pense que le Mac est une belle machine, mais je deviens souvent accro si je l'utilise sans réfléchir. Comme l'environnement de base Unix est complet, en particulier pour les utilisateurs de Linux, il existe des différences subtiles et des comportements étranges. Cela peut être frustrant. Dans cette entrée, je vais résumer certains d'entre eux auxquels je suis accro et comment les gérer.

# 6/18 Ajouté à propos de virtualenv # 6/21 édition iterm ajoutée # 7/17 Ajouté à l'édition MacVim

De plus, les outils que j'utilise

Donc, je développe principalement en utilisant Python. Aussi, j'omettrai l'introduction de chaque outil et ainsi de suite car il existe de nombreux autres articles.

édition homebrew

Googler et frapper le script d'introduction. De plus, étant donné que vous pouvez voir des options et des conseils utiles pour chaque formule, il peut être bon d'ajouter fréquemment une habitude de "brew info" pour le paquet d'introduction.

~ Edition Homebrew terminée ~

iTerm2

iTerm semble être meilleur, alors j'utilise iTerm. Veuillez installer à partir du fonctionnaire.

Désactiver les clés vulnérables

Peut-être que vous lancez toujours CUI. Donc ⌘ + w est une liaison de clé maléfique qui peut provoquer une explosion et frapper le moniteur. Effaçons-le. Dans le menu, ouvrez Preference-> Keys. Ajoutez ⌘ + w ou ⌘ + q aux touches de raccourci globales pour le faire ignorer.

Activer la clé méta

Sur Mac, vous pouvez afficher des symboles incompréhensibles en appuyant sur différentes touches avec Alt. Puisqu'il n'y a presque pas de tour de symboles pendant le codage, je vais permettre de l'utiliser comme clé méta. Avec cela, vous êtes également en sécurité chez emacser.

Ouvrez les paramètres que vous souhaitez utiliser avec Préférence-> Profils. Si vous ne comprenez pas, je pense que vous devriez aller à solarisé et importer le thème pour iTerm2. Ensuite, ouvrez Keys et réglez La touche d'option gauche agit comme: sur + Echap.

Redémarrons le terminal. Je pense que cela fonctionne comme supprimer un mot avec alt + d. Vous l'avez fait, n'est-ce pas?

édition zsh

Je vais vous présenter zsh car j'ai été transformé en un corps qui ne peut pas vivre sans zsh. Cependant, le script zsh standard d'Apple sous / etc fait quelque chose de mal, vous devez donc faire quelque chose.

Réécrivez / etc / zshenv directement par vous-même ou installez-le comme brew install --disable-etcdir zsh. Les détails ci-dessus sont écrits soigneusement tels quels avec brew info zsh.

Une fois l'installation terminée, veuillez vous reporter à http://tukaikta.blog135.fc2.com/blog-entry-195.html et modifier le shell de connexion.

Ensuite, chargeons les fonctions de complétion zsh. Il peut être installé avec brew install zsh-completions. Ensuite, définissez le fpath.

fpath = (
        #zsh-completions
        /usr/local/share/zsh-completions(N-/)

        #homebrew
        /usr/local/share/zsh/functions(N-/)
        )
export fpath

Cela ressemble à ce qui précède. Si vous êtes intéressé, utilisez brew --prefix. Dans les anciennes entrées, etc., les fonctions de complétion pour brew etc. sont introduites séparément avec des liens symboliques, mais maintenant il y en a une bonne dans zsh-complétions, donc c'est inutile.

Commandes de base

Les commandes fournies en standard avec MacOS semblent être dérivées de l'ancien BSD, et c'est très stressant car les options sont différentes et le comportement est étrange, alors remplaçons-les.

Introduisons "openssl", "readline", "git", "coreutils", "gnu-sed", "wget", "gawk", "ctags", "sl".

C'est coreutils écrit ci-dessus, mais si vous le mettez normalement, vous devrez taper le nom de la commande préfixé par g. Réglez PATH et MANPATH en vous référant à brew info. Aussi, donnons la priorité à l'outil homebrew.


BREW_PATH=`/usr/local/bin/brew --prefix`
typeset -U path
path=(
    #Quelque chose comme mon propre script ou quelque chose que j'ai construit moi-même
    $HOME/Dropbox/bin/mac(N-/)
    $HOME/Dropbox/bin(N-/)
    $HOME/bin(N-/)

    #Prioriser l'introduction avec l'homebrew
    $BREW_PATH/bin(N-/)

    ##Homebrew met python et pip en même temps
    ##Il entre dans le PATH ci-dessous, mais en ce qui concerne la commande/usr/local/Lien automatiquement symbolique vers le bac
    ##Il semble qu'il ne soit plus nécessaire d'ajouter ce qui suit car il est devenu étiré. Pour plus d'informations brew info python
    #$BREW_PATH/share/python(N-/)

    #La commande par défaut est la commande GNU
    $(brew --prefix coreutils)/libexec/gnubin(N-/)

    /usr/bin(N-/)
    /bin(N-/)
    #sbin
    /usr/local/sbin(N-/)
    /usr/sbin(N-/)
    /sbin(N-/)
    )
export path

alias sed='gsed'

Veuillez faire la première partie comme vous le souhaitez. Pour le moment, la priorisation des coreutils devrait rendre le comportement et les options équivalents à ceux de GNU. Cela ne fonctionnera pas avec le script shell qui fonctionnait sous Linux! Ça n'arrivera pas (peut-être)

édition tmux

Les émulateurs de terminaux Mac tels que iTerm2 ne semblent pas bien fonctionner avec le presse-papiers sur tmux. Cela crée une situation tragique dans laquelle vous utilisez Vim et avec set clipboard = unamed activé, Vim sur votre appareil, y compris MacVim, ne peut pas coller du tout.

Installez reattach-to-user-namespace depuis brew pour éviter ce qui précède.

Ensuite, installez le script pour démarrer tmux en coopération avec les outils ci-dessus en vous référant à https://gist.github.com/elasticdog/1462391.

Finalement,"tmux save-buffer - | reattach-to-user-namespace pbcopy"Et"reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer" Il est également possible de lier le registre tmux au presse-papiers en attachant une telle opération à une liaison appropriée de tmux.

En parlant de cela, il y a un tmux qui semble être ajusté pour iTerm, mais je pense que l'homebrew est bon car il semble dénué de sens.

Python

Mac standard Python n'est pas bon, alors utilisons brew. Puisque je veux utiliser l'openssl que j'ai mis dans homebrew, je spécifie explicitement brew install python --with-brewed-openssl.

virtualenv

Si vous utilisez virtualenv tel quel, ce sera gênant car le Python par défaut de Mac sera priorisé.

Tout d'abord, assurez-vous que le python et le pip de l'homebrew sont priorisés en fonction du paramètre PATH défini dans la commande de base ci-dessus. which python which pip

Ensuite, mettez virtualenv et virtualenvwrapper. Je suis un homme qui utilise du pip.

Après l'installation, écrivez les paramètres suivants dans .zprofile.

# --- virtualenv
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages --python=/usr/local/bin/python'
## virtualenv should use Distribute instead of legacy setuptools
#Il semble que setuptools a été mis à jour
#export VIRTUALENV_DISTRIBUTE=true
source /usr/local/bin/virtualenvwrapper.sh
#--- pip
# cache pip-installed packages to avoid re-downloading
export PIP_DOWNLOAD_CACHE = $HOME/.pip/cache

À l'origine, je pense que le réglage VIRTUALENVWRAPPER_PYTHON fera l'affaire, mais pour une raison quelconque, je veux obstinément utiliser python standard, donc je l'ai défini explicitement avec VIRTUALENVWRAPPER_VIRTUALENV_ARGS. Au fait, mon pouvoir de combat contre les python est une classe de fermier, donc s'il y a quelque chose qui ne va pas, plongez-vous dedans.

Après l'écriture, rechargez les paramètres zsh.

Vigueur

Vous pouvez le construire vous-même, mais je ne suis pas doué pour cela, alors j'utilise de la bière. brew install vim --override-system-vi --with-lua --with-ruby --with-python --with-python3 Laissons cela comme. Bien sûr, lua, ruby et python3 sont également introduits en premier. En particulier, lua a été activement introduite récemment, il serait donc bon de l'inclure.

MacVim

Auparavant, MacVim avait un script Python qui plantait, mais avec la dernière version, cela fonctionne bien. Aussi, faites de votre mieux pour bénéficier de l'accélération if_lua de ShougoWare. brew install macvim --with-lua ça ira. De plus, il semble que luajit soit supporté par la formule standard de brassage avant que vous ne le sachiez, donc si vous voulez l'inclure, utilisez --with-luajit.

Veuillez consulter ce blog pour plus de détails. Dernier patch & if_lua MacVim pour une recherche et une complétion rapides!

De plus, le binaire MacVim-Kaoriya a été mis à jour avec if_lua, donc cela peut être bien.

Finalement

Je l'ai donné comme je le voulais, il peut donc y avoir des ajouts et des corrections à l'avenir.

Recommended Posts

Éviter les pièges de l'utilisation d'un Mac (pour les utilisateurs Linux?)
Ce que les utilisateurs de Java ont pensé d'utiliser le langage Go pendant une journée
Impressions d'utilisation de Flask pendant un mois
Remarques sur l'utilisation de KUnit, le mécanisme de test unitaire du noyau Linux
C'est un Mac. Qu'est-ce que la commande Linux Linux?
[AWS Lambda] Créer un package de déploiement à l'aide de l'image Amazon Linux Docker
Découpez une partie de la chaîne à l'aide d'une tranche Python
Créez un code QR pour l'URL sous Linux
Un bref résumé du logiciel antivirus pour Linux personnel
L'histoire de la création d'un canal VIP dans le chatwork en interne
Essayez une recherche similaire de recherche d'images à l'aide du SDK Python [Recherche]
Afficher la force du signal RSSI d'un SSID spécifique (Mac)
Un résumé approximatif des différences entre Windows et Linux
Mac Linux Vérifiez la capacité directement dans un répertoire spécifique
Un bref résumé de Linux
L'histoire de la création d'une base de données à l'aide de l'API Google Analytics
Un mémorandum d'utilisation de eigen3
Mémorandum de l'outil de gestion de paquets Python ez_setup
Un bref résumé de Graphviz en python (expliqué uniquement pour mac)
Comment obtenir le pilote d'imprimante pour Oki Mac sous Linux
Sous Linux, l'horodatage d'un fichier est un peu dépassé.
L'histoire de la création d'un pilote standard pour db avec python.
Comment afficher le résultat de sortie de la commande man Linux dans un fichier
Vérifiez la protection de la mémoire de Linux Kerne avec le code pour ARM
Évaluer les performances d'un modèle de régression simple à l'aide de la validation d'intersection LeaveOneOut
Essayez d'utiliser Elasticsearch comme base de votre système de questions et réponses
Trouvez la valeur optimale de la fonction à l'aide d'un algorithme génétique (partie 1)
Héberger la bibliothèque réseau Mirror for Unity sur un serveur Linux
[Kaggle] J'ai fait une collection de problèmes en utilisant le didacticiel Titanic
[À voir pour les débutants] Bases de Linux
L'histoire de l'exportation d'un programme
Afficher la force du signal RSSI d'un SSID spécifique (raspberry pi (linux))
Apprendre le latin dans le but d'écrire un programme d'analyse de phrases latines (partie 1)
Lignes directrices pour se réincarner dans le monde du développement de programmation Linux (langage C / C ++)
[Linux] Une commande pour obtenir une liste des commandes exécutées dans le passé
Afficher le chemin complet (chemin absolu) d'un fichier dans un répertoire sous Linux Bash
J'ai essayé de mesurer le temps d'attente de la file d'attente d'exécution d'un processus sous Linux
[Mac] Créez un environnement Python 3.x à la vitesse la plus rapide à l'aide de Docker
Une note sur les fonctions de la bibliothèque Linux standard qui gère le temps
Comment lire une vidéo tout en regardant le nombre d'images (Mac)
Une note utile lors de l'utilisation de Python après une longue période
Linux (À propos des utilisateurs et des commandes su / sudo)
[Comprendre en 3 minutes] Le début de Linux
Découvrez les dates du tournoi fou
Un mémorandum sur l'utilisation de la fonction d'entrée de Python
Mesurer la force de l'association dans un tableau croisé
Créer un graphique à l'aide du module Sympy
Changer la liste dans l'instruction for
[Mac] Création d'un environnement virtuel pour Python