2015-08-11 11 views
9

Non si tratta di quei file che hanno il loro flag di sola lettura impostato a livello di sistema operativo, ma di ogni file che gli utenti non intendono modificare. Voglio semplicemente che il testo sublime su ignori qualsiasi modifica e impedisca di salvare qualsiasi cosa in tali file. Un esempio per questo scenario è quando l'utente sta leggendo il codice sorgente che non dovrebbe essere modificato in alcun modo.Does Sublime Text 2 ha una modalità di sola lettura?

"Basta stare veramente attenti e non premere nessun pulsante" è senza dubbio un buon consiglio, ma se dovessi "accidentalmente" (< - virgolette) cancella quel octothorpe di fronte a un commento, o aggiungi nuovo linee a un file sensibile a tali cose (alcuni file di configurazione in Linux) e poi da hittance hit Salva ...

Ho trovato this plugin in github, ma in realtà si commuta il permesso di file (sola lettura, scrittura) - Non proprio quello che volevo.

risposta

6

Sì, questo è possibile, ma dovrete scrivere un plug-in (che in realtà non è così difficile, specialmente se conoscete Python). La chiamata API è view.set_read_only(flag) nel modulo sublime, dove Flag è un valore booleano. Ecco un rapido esempio che controlla se un file appena aperto ha un certo suffisso e, in caso affermativo, lo imposta in sola lettura.

import sublime 
import sublime_plugin 


class MakeViewReadOnlyCommand(sublime_plugin.TextCommand): 
    def run(self, edit): 
     if self.view.file_name().endswith(".cfg"): 
      self.view.set_read_only(True) 


class ConfigFileListener(sublime_plugin.EventListener): 
    def on_load(self, view): 
     view.run_command("make_view_read_only") 

Aprire un nuovo file con la sintassi di Python, copiare il codice in esso, modificarlo in base alle esigenze, quindi salvarlo nella directory Packages/User come make_view_read_only.py. Riavvia Sublime per caricarlo, e dovresti essere tutto pronto. Per verificare se una certa visione è di sola lettura, aprire la console e digitare

view.is_read_only() 
+0

+1 brillante. Conosco un po 'di python e devo leggere la loro documentazione sulla api per procedere manualmente alla creazione di un plugin. Sarebbe possibile aggiungere un "commuta modalità di sola lettura" nel menu di scelta rapida dell'editor per tutti i tipi di file? –

+0

@RenaeLider sì, è possibile. Dal momento che questo è al di fuori della portata di questa domanda originale, basta fare una nuova domanda e fare riferimento a questo - se lo farai nelle prossime 24 ore dovrei essere in grado di rispondere (vado in vacanza il venerdì). – MattDMo

+0

L'OP ha effettivamente fatto una domanda del genere? Sarebbe bello con un link da questo QA, non riesco a trovarlo. – emilBeBri

0

Il plugin Toggle the View Read-Only deve farlo. Fondamentalmente fa solo quello che ha detto MattDMo: quando imposti la visualizzazione come sola lettura, il file può ancora essere modificato da un altro programma (o da un altro utente) e Sublime Text rileverà tali modifiche. Ha anche la voce del menu contestuale richiesta. Mi piace l'indicatore "Readonly" nella barra di stato.

Non testato su Sublime Text 2, ma in Sublime Text 3 funziona perfettamente e sostiene di funzionare anche su Sublime Text 2.