From Fedora Project Wiki
m
(Add trackers)
 
(22 intermediate revisions by 7 users not shown)
Line 4: Line 4:
 
== Summary ==
 
== Summary ==
  
vim is powerful. nano is simple. Let's use nano as the default editor across all of Fedora.
+
Let's make Fedora more approachable, by having a default editor that doesn't require specialist knowledge to use.
  
 
== Owner ==
 
== Owner ==
Line 12: Line 12:
 
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
 
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
 
-->
 
-->
 
 
 
== Current status ==
 
== Current status ==
[[Category:ChangePageIncomplete]]
+
[[Category:ChangeAcceptedF33]]
 
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
 
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
  
Line 29: Line 27:
 
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
 
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
 
-->
 
-->
* FESCo issue: <will be assigned by the Wrangler>
+
* FESCo issue: [https://pagure.io/fesco/issue/2426 #2426]
* Tracker bug: <will be assigned by the Wrangler>
+
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1854444 #1854444]
* Release notes tracker: <will be assigned by the Wrangler>
+
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/522 #522]
  
 
== Detailed Description ==
 
== Detailed Description ==
  
nano is already installed across most Fedora Editions and Spins. This proposal will make it the default editor, while continuing to install vim-minimal.
+
Users are exposed to the default editor when they use commands that call it. The main example here is something like <code>git commit</code>.
 +
 
 +
Fedora does not currently have a default terminal text editor, because the $EDITOR environment variable is unset by default. But a common scenario where users wind up in a terminal text editor is when using 'git commit'. By default, git picks vi. You need to spend time learning how to use it, for even basic editing tasks. This increases the barrier to entry for those who are switching to Fedora and don't know how to use vi. It also makes things hard for those who don't particularly want to learn how to use vi. (These arguments would apply just as well if git picked Vim. vi is like hard mode for Vim, with fewer features, missing syntax highlighting, and no indication of what mode you are in. Even Vim users may feel lost and bewildered when using vi.)
  
vim requires esoteric knowledge, or Googling, for common editing tasks: entering edit mode, saving, quitting. Let's leave such power in the hands of experts.
+
In contrast, Nano offers the kind of graphical text editing experience that people are used to, and therefore doesn't require specialist knowledge to use. It is already installed across most Fedora Editions and Spins. This proposal will make Nano the default editor, while continuing to install <code>vim-minimal</code> (which provides vi, but not Vim). People will still be able to call <code>vi</code> if they want to edit a file. It will also obviously be possible to change the default editor to vi or Vim, for those who want it.
 +
 
 +
Why make Nano default and vi optional, rather than the other way round? Because Nano is the option that everyone can use.
  
 
== Feedback ==
 
== Feedback ==
  
 +
* I think this is a great idea - and I already set my EDITOR to vim.  Having to explain how to set EDITOR in .bashrc before even starting the basics of terminal lore with a newbie is an unnecessary barrier.  @sdgathman (will have to see an example of properly signing feedback)
  
 +
* I like the idea, but ... this is a change in behavior for users who do a clean install in order to "upgrade" the OS. I'd expect at least a handful of bugzilla requests to be opened against this change demanding a different default or to revert and let the app pick its own default. Emacs users are a very vocal bunch for example. Personally, I don't mind; changing the default $EDITOR is not that hard, but it's a point of contention for some, and I feel it's fair to raise that for awareness now rather than wait. Also, what about the default $PAGER for man - it's currently null or /usr/bin/less right? /usr/bin/less uses similar commands to vi and this will bring about an inconsistency in the terminal that I'd like to see addressed before this is released. [[User:Speeddymon|Speeddymon]] ([[User talk:Speeddymon|talk]]) 18:25, 25 June 2020 (UTC)
  
 
== Benefit to Fedora ==
 
== Benefit to Fedora ==
  
 
* Makes the default editor across all of Fedora more approachable.  
 
* Makes the default editor across all of Fedora more approachable.  
* Nano is also mostly self-documenting, by displaying common keyboard shortcuts on-screen).
+
* Nano is also mostly self-documenting, by displaying common keyboard shortcuts on-screen.
 
* More in line with the default editor of other distributions.
 
* More in line with the default editor of other distributions.
 
 
  
 
== Scope ==
 
== Scope ==
 
* Proposal owners:
 
* Proposal owners:
+
** Create a new subpackage of <code>nano</code>, called <code>nano-default-editor</code>.
** Modify comps to include nano Fedora wide
+
** <code>nano-default-editor</code> will include <code>/etc/profile.d/nano.(sh|csh)</code>, which sets <code>$EDITOR</code> to <code>nano</code>.
** Create a package that provides /usr/bin/editor ... sprinkle on some magic and voila. Also include this package in comps.
+
** <code>nano-default-editor</code> will be added to both @standard and @workstation-product in comps, so it gets installed by default everywhere.
 +
 
 +
With this approach, if <code>nano</code> is uninstalled, the configuration will be removed with it. At the same time, installing nano on its own won't install the conf.
  
* Other developers: N/A <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
+
* Other developers: N/A
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
 
  
* Release engineering: [https://pagure.io/releng/issues/9522 #9522]
+
* Release engineering: [https://pagure.io/releng/issue/9522 #9522]
  
* Policies and guidelines: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
+
* Policies and guidelines: N/A
<!-- Do the packaging guidelines or other documents need to be updated for this feature?  If so, does it need to happen before or after the implementation is done?  If a FPC ticket exists, add a link here. -->
 
  
* Trademark approval: N/A (not needed for this Change)
+
* Trademark approval: N/A
<!-- If your Change may require trademark approval (for example, if it is a new Spin), file a ticket ( https://fedorahosted.org/council/ ) requesting trademark approval from the Fedora Council. This approval will be done via the Council's consensus-based process. -->
 
  
 
== Upgrade/compatibility impact ==
 
== Upgrade/compatibility impact ==
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->
 
  
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
+
Will not apply to upgrades.
N/A (not a System Wide Change)
 
  
 
== How To Test ==
 
== How To Test ==
<!-- This does not need to be a full-fledged document. Describe the dimensions of tests that this change implementation is expected to pass when it is done.  If it needs to be tested with different hardware or software configurations, indicate them.  The more specific you can be, the better the community testing can be.
 
 
Remember that you are writing this how to for interested testers to use to check out your change implementation - documenting what you do for testing is OK, but it's much better to document what *I* can do to test your change.
 
 
A good "how to test" should answer these four questions:
 
 
0. What special hardware / data / etc. is needed (if any)?
 
1. How do I prepare my system to test this change? What packages
 
need to be installed, config files edited, etc.?
 
2. What specific actions do I perform to check that the change is
 
working like it's supposed to?
 
3. What are the expected results of those actions?
 
-->
 
  
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
+
Run <code>export EDITOR="/usr/bin/nano"</code>.
N/A (not a System Wide Change)
 
  
 
== User Experience ==
 
== User Experience ==
<!-- If this change proposal is noticeable by users, how will their experiences change as a result?
 
  
This section partially overlaps with the Benefit to Fedora section above. This section should be primarily about the User Experience, written in a way that does not assume deep technical knowledge. More detailed technical description should be left for the Benefit to Fedora section.
+
Users running <code>git commit</code> will be able to just type their commit message, rather than having to learn about insert mode, and they'll be able to cut and paste without having to learn special shortcuts.
 
 
Describe what Users will see or notice, for example:
 
  - Packages are compressed more efficiently, making downloads and upgrades faster by 10%.
 
  - Kerberos tickets can be renewed automatically. Users will now have to authenticate less and become more productive. Credential management improvements mean a user can start their work day with a single sign on and not have to pause for reauthentication during their entire day.
 
- Libreoffice is one of the most commonly installed applications on Fedora and it is now available by default to help users "hit the ground running".
 
- Green has been scientifically proven to be the most relaxing color. The move to a default background color of green with green text will result in Fedora users being the most relaxed users of any operating system.
 
-->
 
  
 
== Dependencies ==
 
== Dependencies ==
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this change depends?  In other words, completion of another change owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel change)? -->
 
  
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
+
No additional dependencies are required.
N/A (not a System Wide Change)
 
  
 
== Contingency Plan ==
 
== Contingency Plan ==
  
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
+
The contingency plan is to revert the change by removing the <code>nano-editor</code> package.
* Contingency mechanism: (What to do?  Who will do it?) N/A (not a System Wide Change)  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
+
 
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
+
* Contingency deadline: probably the beta? It's an easy change to revert.
* Contingency deadline: N/A (not a System Wide Change)  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
+
* Blocks release? If the change breaks the redirection to an editor, it should block the release. However, this is unlikely.
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
+
* Blocks product? Potentially all.
* Blocks release? N/A (not a System Wide Change), Yes/No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
 
* Blocks product? product <!-- Applicable for Changes that blocks specific product release/Fedora.next -->
 
  
 
== Documentation ==
 
== Documentation ==
<!-- Is there upstream documentation on this change, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
 
  
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
+
As part of this change, it would be good to add instructions for changing the default editor to the [https://docs.fedoraproject.org/en-US/quick-docs/ quick docs].
N/A (not a System Wide Change)
 
  
 
== Release Notes ==
 
== Release Notes ==

Latest revision as of 13:56, 7 July 2020

Make nano the default editor

Summary

Let's make Fedora more approachable, by having a default editor that doesn't require specialist knowledge to use.

Owner

Current status

Detailed Description

Users are exposed to the default editor when they use commands that call it. The main example here is something like git commit.

Fedora does not currently have a default terminal text editor, because the $EDITOR environment variable is unset by default. But a common scenario where users wind up in a terminal text editor is when using 'git commit'. By default, git picks vi. You need to spend time learning how to use it, for even basic editing tasks. This increases the barrier to entry for those who are switching to Fedora and don't know how to use vi. It also makes things hard for those who don't particularly want to learn how to use vi. (These arguments would apply just as well if git picked Vim. vi is like hard mode for Vim, with fewer features, missing syntax highlighting, and no indication of what mode you are in. Even Vim users may feel lost and bewildered when using vi.)

In contrast, Nano offers the kind of graphical text editing experience that people are used to, and therefore doesn't require specialist knowledge to use. It is already installed across most Fedora Editions and Spins. This proposal will make Nano the default editor, while continuing to install vim-minimal (which provides vi, but not Vim). People will still be able to call vi if they want to edit a file. It will also obviously be possible to change the default editor to vi or Vim, for those who want it.

Why make Nano default and vi optional, rather than the other way round? Because Nano is the option that everyone can use.

Feedback

  • I think this is a great idea - and I already set my EDITOR to vim. Having to explain how to set EDITOR in .bashrc before even starting the basics of terminal lore with a newbie is an unnecessary barrier. @sdgathman (will have to see an example of properly signing feedback)
  • I like the idea, but ... this is a change in behavior for users who do a clean install in order to "upgrade" the OS. I'd expect at least a handful of bugzilla requests to be opened against this change demanding a different default or to revert and let the app pick its own default. Emacs users are a very vocal bunch for example. Personally, I don't mind; changing the default $EDITOR is not that hard, but it's a point of contention for some, and I feel it's fair to raise that for awareness now rather than wait. Also, what about the default $PAGER for man - it's currently null or /usr/bin/less right? /usr/bin/less uses similar commands to vi and this will bring about an inconsistency in the terminal that I'd like to see addressed before this is released. Speeddymon (talk) 18:25, 25 June 2020 (UTC)

Benefit to Fedora

  • Makes the default editor across all of Fedora more approachable.
  • Nano is also mostly self-documenting, by displaying common keyboard shortcuts on-screen.
  • More in line with the default editor of other distributions.

Scope

  • Proposal owners:
    • Create a new subpackage of nano, called nano-default-editor.
    • nano-default-editor will include /etc/profile.d/nano.(sh|csh), which sets $EDITOR to nano.
    • nano-default-editor will be added to both @standard and @workstation-product in comps, so it gets installed by default everywhere.

With this approach, if nano is uninstalled, the configuration will be removed with it. At the same time, installing nano on its own won't install the conf.

  • Other developers: N/A
  • Release engineering: #9522
  • Policies and guidelines: N/A
  • Trademark approval: N/A

Upgrade/compatibility impact

Will not apply to upgrades.

How To Test

Run export EDITOR="/usr/bin/nano".

User Experience

Users running git commit will be able to just type their commit message, rather than having to learn about insert mode, and they'll be able to cut and paste without having to learn special shortcuts.

Dependencies

No additional dependencies are required.

Contingency Plan

The contingency plan is to revert the change by removing the nano-editor package.

  • Contingency deadline: probably the beta? It's an easy change to revert.
  • Blocks release? If the change breaks the redirection to an editor, it should block the release. However, this is unlikely.
  • Blocks product? Potentially all.

Documentation

As part of this change, it would be good to add instructions for changing the default editor to the quick docs.

Release Notes